본문 바로가기

Cloud42

컨테이너 로깅, 컨테이너 자원 할당 제한 컨테이너 로깅 도커 로깅 드라이버의 역할 : 컨테이너에서 로그를 수집하고 다른 곳에 전송 도커 로깅 드라이버 도커 로깅 드라이버는 컨테이너에서 생성된 로직을 수집하고 저장하는 방법을 제공한다. 이렇게 저장된 로그 데이터는 다른 시스템에서 사용할 수 있으므로 디버깅, 모니터링 및 분석이 용이해진다. 도커는 기본 드라이버로 json file를 지원한다. 다른 드라이버로 syslog, fluentd, aws cloud watch 등을 지원한다. 기본 드라이버 컨테이너를 실행하며 발생한 로그는 JSON 형태로 도커 컨테이너에 저장된다. 컨테이너 아이디/{컨테이너 아이디}-json.log 파일로 저장된다. 로그 파일의 최대 크기를 제한할 수 있다. syslog 유닉스 계열 운영체제에서 로그를 수집하는 오랜 표준이.. 2023. 4. 22.
도커 네트워크 도커 네트워크 구조 - 컨테이너는 내부 IP를 받음 - (컨테이너) eth0 -> (호스트) veth -> (네트워크 드라이브) docker0 -> (호스트) eth0 도커 네트워크 드라이브 - 네트워크 상의 다른 컴퓨터 파일 시스템에 액세스할 수 있도록 도와주는 가상 드라이브 - 브리지 : 서브넷, 게이트웨이, IP 할당 범위 설정 가능 - 호스트 : 호스트의 네트워크 인터페이스 사용 - 논 : 외부 연결 안함 도커 컨테이너 공유 - 어떤 네트워크 인터페이스를 사용하고 있는 컨테이너 존재 - 이 컨테이너와 동일한 네트워크 인터페이스를 공유하는 컨테이너 실행 가능 - 호스트 이름 지정할 수 있음, 도커 내장 DNS 사용, 라운드 로빈 방식 할당 도커가 제공하는 네트워크 도커는 가상화된 환경에서 실행되는 .. 2023. 4. 22.
도커 볼륨 도커 볼륨 필요한 이유 : 컨테이너 레이어에 쌓인 데이터는 컨테이너와 함께 삭제되므로 보관 필요 호스트와 볼륨 공유 : 컨테이너의 데이터 디렉터리를 호스트 디렉터리에 공유. 컨테이너 -> 호스트 볼륨 컨테이너 사용 : 위의 방법으로 만든 볼륨 컨테이너를 통해 호스트 디렉터리에 접근 가능한 컨테이너 실행. 컨테이너 -> 볼륨컨테이너 -> 호스트 도커 볼륨 사용 : 도커가 제공하는 볼륨이 데이터 저장소, 볼륨을 공유받는 컨테이너 실행. 컨테이너 -> 도커 볼륨 도커 볼륨이 필요한 이유 컨테이너 구조는 읽기 전용인 도커 이미지와 컨테이너를 운용하면서 쌓이는 데이터를 저장하는 컨테이너 레이어로 나뉜다. 이때 컨테이너를 삭제하면 데이터도 함께 삭제된다. 컨테이너는 삭제가 쉬워서 데이터를 보존할 필요가 있다. 컨테.. 2023. 4. 22.
mysql 기반 wordpress 컨테이너 배포하기 순서 mysql 컨테이너 실행 wordpress 컨테이너 실행, link 컨테이너이름:호스트이름 mysql 이미지로 데이터베이스 컨테이너를 생성하고 실행했다. 이때 컨테이너 내부의 환경변수로 필요한 데이터베이스 이름과 루트 계정의 비밀번호를 -e 옵션으로 넘겨주었다. docker run -d --name wordpressdb \\ -e MYSQL_ROOT_PASSWORD=password \\ -e MYSQL_DATABASE=wordpress \\ mysql wordpress 이미지로 워드프레스 웹 서버 컨테이너를 생성하고 실행했다. 웹 서버는 mysql을 사용하므로 DB 사용에 필요한 환경변수를 넘겨주고, link 옵션으로 다른 컨테이너에 alias로 접근 가능하도록 설정했다. 포트 포워딩은 컨테이너 쪽.. 2023. 4. 22.
컨테이너 포트 포워딩 도커 컨테이너가 실행되는 호스트 시스템에는 NAT 환경이 적용된다. 내부 망에서 도커 컨테이너는 사설 IP를 할당받는다. 외부에서 들어오는 요청을 사설 IP 주소를 가진 컨테이너에서 처리하려면 호스트의 IP와 포트에 컨테이너의 IP와 포트를 바인딩해야한다. 이를 포트 포워딩이라고 한다. 웹서버 컨테이너의 실행을 예로 들어보자. 웹서버는 80 포트를 기본으로 사용한다. 컨테이너를 생성하면 이 컨테이너는 172번대의 사설 IP를 받는다. 이 컨테이너에 웹서버를 설치해 실행하면 웹서버가 80번 포트에서 동작할 것이다. 이제 외부에서 이 웹서버에 요청을 보내고자 한다. 사설 IP를 가진 프로세스에 요청을 보낼 수 없으므로 해당 컨테이너가 동작하는 호스트에 요청을 보낸다. 호스트는 특정 포트로 들어온 외부의 요청.. 2023. 4. 22.
컨테이너 생성과 실행, 쉘 접속, 목록 확인, 삭제 도커 이미지 파일로 여러개의 컨테이너를 생성해 실행할 수 있다. 컨테이너는 프로세스이다. 컨테이너 생성과 실행, 쉘 접속 통합 명령어 : 생성, 실행, 쉘 접속 docker run -it ubuntu:14.04 컨테이너 종료 exit Ctrl + d 컨테이너 종료하지 않고 쉘 빠져나오기 Ctrl p q 이미지 목록 확인 docker images 컨테이너 생성 및 실행 일반 명령어 docker pull centos:7 # 이미지 가져오기 docker create -it --name mycentos centos:7 # 컨테이너 생성 docker start mycentos # 컨테이너 실행 docker attach mycentos # 컨테이너 쉘 접속 컨테이너 목록 확인과 삭제 컨테이너 목록 확인 docker.. 2023. 4. 22.