Docker 설치 및 설정

Mac, Windows 주의사항

Docker Desktop 이 조건부 유료가 되었음

맥의 경우 Docker Desktop을 설치를 해도 Appication에서는 Docker라고 나와서 Docker Desktop을 설치하지 않았다고 착각할 수도 있음.

 

To Uninstall: Docker 프로그램 실행 후 버그모양 아이콘에서 삭제를 하면 됨

  1. Click On Docker Icon

  2. Select Preferences

  3. Select Bug Icon for the Troubleshoot menu (Bomb Icon in older Docker UI)

  4. Select Uninstall

Ubuntu에 docker 설치

아래 문서 참고해 설치하면 됨.

https://docs.docker.com/engine/install/ubuntu/

Set up the repository

Install Docker Engine

sudo apt-get update sudo apt-get install -y \ ca-certificates \ curl \ gnupg \ lsb-release curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo \ "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin grep -q docker /etc/group || sudo groupadd docker sudo usermod -aG docker $USER newgrp docker #docker run hello-world sudo systemctl enable docker.service sudo systemctl enable containerd.service

Ubuntu 에 docker 설치하고 후속작업

https://docs.docker.com/engine/install/linux-postinstall/

루트가 아닌 사용자로 Docker 관리 : docker그룹 을 만들고 사용자를 추가 

부팅 시 시작하도록 Docker 구성

Docker 데몬이 연결을 수신하는 위치 구성 : 원격 호스트에서 접속을 허용할 경우 설정하면 됨.

 

Docker 로깅 드라이브

https://docs.docker.com/config/containers/logging/configure/

기본은 json-file. 이전 버전의 Docker와 Docker가 Kubernetes의 런타임으로 사용되는 상황에서 이전 버전과의 호환성을 유지하기 위해 json 파일 로깅 드라이버(로그 회전 없음)를 기본값으로 유지합니다. 이 경우 로그로테이션을 수행하지 않으므로 디스크 공간이 꽉 차는 것을 방지하려면 local log-driver 사용할 것을 권장하고 있음.

 

https://docs.docker.com/config/containers/logging/local/

옵션

설명

예시 값

옵션

설명

예시 값

max-size

롤링되기 전의 최대 로그 크기입니다. 양의 정수 플러스 측정 단위를 나타내는 수식 ( km나 g). 기본값은 20m입니다.

--log-opt max-size=10m

max-file

존재할 수 있는 최대 로그 파일 수입니다. 로그를 롤링하여 초과 파일이 생성되면 가장 오래된 파일이 제거됩니다. 양의 정수입니다. 기본값은 5입니다.

--log-opt max-file=3

compress

회전된 로그 파일의 압축을 토글합니다. 기본적으로 활성화되어 있습니다.

--log-opt compress=false

 

새로 생성된 컨테이너에 변경 사항을 적용하려면 Docker를 다시 시작합니다. 기존 컨테이너는 새 로깅 구성을 사용하지 않습니다. Daemon 기본 설정파일은 /etc/docker/daemon.json

$ cat /etc/docker/daemon.json { "log-driver": "local", "log-opts": { "max-size": "10m" } } $ sudo systemctl restart docker $ docker info --format '{{.LoggingDriver}}'

 

Mac에 Docker 설치

먼저 brew를 사용해 Docker Client를 설치해줍니다. 기존에는 cask를 사용했었지만 현재 deprecated되어 그냥 brew로 설치하면 됩니다.

 

$ brew install docker

이렇게 하면 Docker Client만 설치된 것이기 때문에 실제 사용 시 서버에 연결할 수 없다는 에러가 발생합니다. Docker 데몬의 경우 Linux 커널의 기능을 사용하기 때문에 MacOS에서는 Client만 가지고 사용할 수 없습니다.

하지만 docker-machine을 통해 VM을 생성하면 연결가능합니다.

VM을 생성해야 하므로 virtualbox가 설치되어있지 않다면 설치해야합니다.

docker-machine 설치 후 docker-machine 을 시작하라는 메시지가 나온다. 메시지대로 따라한다.

둘 다 설치가 됐으면 docker-machine을 생성합니다.

그 다음 환경변수를 설정합니다.

Docker server가 VM으로 실행되고 있으므로 Docker를 통해 서버를 띄울 경우 docker-machine ls로 서버 정보를 확인 후 서버에 접근해야합니다.