도커

    도커 컨테이너 다루기(13) - 도커 데몬 모니터링

    1. 도커 데몬 디버그 모드 도커 데몬에서 어떤 일이 일어나고 있는지 가장 확실하고 정확하게, 그리고 자세하게 알아내는 방법은 도커 데몬을 디버그 옵션으로 실행하는 것입니다. # dockerd -D 도커를 서비스로서 구동했을 때는 위와 같은 출력내용이 없기 때문에 로그파일에서 확인 가능합니다. /var/log/upstart/docker.log 나 journalctl -u docker 명령으로 확인할 수 있습니다. 하지만 디버그 모드는 원하지 않는 정보까지 너무 많이 출력되며, 포그라운드 상태로 실행해야 한다는 단점이 있습니다. 2. events, stats, system df 명령어 [root@localhost ~]# docker events [root@localhost ~]# docker system ..

    도커 컨테이너 다루기(12) - 도커데몬[3]

    1. 컨테이너 저장공간 설정 컨테이너 내부에서 사용되는 파일시스템의 크기는 도커의 스토리지 드라이버에 따라 조금씩 다릅니다. 예를 들어, AUFS나 overlay2 경우 컨테이너는 호스트와 저장 공간의 크기를 공유합니다. [root@localhost ~]# docker info |grep -i storage Storage Driver: overlay2 [root@localhost ~]# df -h ... /dev/mapper/centos-root 8.0G 7.6G 455M 95% / ... [root@localhost ~]# docker run -ti --name test1 ubuntu:18.04 root@80919a25da04:/# df -h ... overlay 8.0G 7.6G 454M 95% / ..

    도커 컨테이너 다루기(10) - 도커데몬[1]

    1. 도커의 구조 [root@localhost ~]# which docker /usr/bin/docker [root@localhost ~]# ps auxfw |grep docker root 1567 0.0 2.9 684176 114544 ? Ssl 5월24 8:48 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 컨테이너나 이미지를 다루는 명령어는 /usr/bin/docker로 실행되지만, 도커 엔진의 프로세스는 /usr/bin/dockerd 파일로 실행됩니다. 이는 docker 명령어가 실제 도커 엔진이 아닌 클라이언트로서의 도커이기 때문입니다. 도커는 클라이언트로서의 도커, 서버로서의 도커로 구분됩니다. 서버로서의 도커란 ..

    도커 컨테이너 다루기(9) - Dockerfile로 빌드할 때 주의할 점

    Dockerfile을 사용할 때 좋은습관이라는 것이 있습니다. RUN apt-get install A \ B \ C \ 위처럼 역슬래쉬로 나눠서 가독성을 높이거나, .dockerignore 파일을 작성해 불필요한 파일을 빌드 컨텍스트에 포함하지 않는 것이 있습니다. Dockerfile을 아무렇게나 작성하면 저장 공간을 불필요하게 차지하는 이미지나 레이어가 너무 많은 이미지가 생성될 수 있습니다. [root@localhost dockerfile]# vi dockerfile FROM ubuntu:18.04 RUN mkdir /test RUN fallocate -l 100m /test/dummy RUN rm /test/dummy fallocate 명령어로 100MB 크기의 파일을 가상으로 만들어 /test/d..

    도커 컨테이너 다루기(8) - 도커파일(Dockerfile)[1]

    보통 개발한 애플리케이션을 컨테이너화할 때 다음과 같은 방법으로 진행합니다. 1. 기본 이미지(CentOS, ubuntu 등)로 컨테이너 생성 2. 애플리케이션 및 환경 설치 3. 컨테이너를 이미지로 commit (myimage:0.0) 위 방법 사용 시 애플리케이션이 동작하는 환경을 구성하기 위해 일일이 수작업으로 패키지를 설치하고 소스코드를 깃에서 복제하거나 호스트에서 복사해야 합니다. 도커는 위와 같은 일련의 과정을 손쉽게 기록하고 수행할 수 있는 빌드 명령어를 제공합니다. 완성된 이미지를 생성하기 위해 컨테이너에 설치해야 하는 패키지, 추가해야 하는 소스코드, 실행해야 하는 명령어, 쉘스크립트 등을 하나의 파일에 기록해 두면 도커는 이 파일을 읽어 컨테이너에서 작업을 수행한 뒤 이미지로 만들어냅니..

    도커 컨테이너 다루기(7) - 도커 이미지(Image)

    모든 컨테이너는 이미지를 기반으로 생성됩니다. 레드햇 기반 OS에서 yum install을 실행하면 yum repository 에서 패키지를 내려받듯이 도커는 도커허브(Docker Hub)라는 중앙 이미지 저장소에서 이미지를 내려받습니다. 도커 허브는 도커의 공식적인 이미지저장소로서 도커 계정을 가지고 있다면 누구든지 이미지를 올리고 내려받을 수 있기 때문에 다른 사람들에게 이미지를 쉽게 공유할 수 있습니다. 대부분의 이미지는 도커 허브에서 공식적으로 제공하거나 사용자들이 미리 올려놓은 경우가 대부분이라서 애플리케이션 이미지를 직접 만들지 않아도 손쉽게 사용할 수 있다는 장점이 있습니다. 하지만 누구든지 올려놓을 수 있기 때문에 공식라벨(Official)이 없는 이미지는 제대로 동작하지 않을 수 있습니다..