본문으로 건너뛰기

Ubuntu에서 Docker Engine 설치하기

경고: Ubuntu에서 Docker를 설치할 때는 apt를 사용하지 마세요. 아래 지침에 따라 Docker APT 저장소를 제대로 설정한 후 Docker를 설치하세요.

전제 조건

OS 요구 사항

Docker는 다음 버전의 Ubuntu를 지원합니다:

  • Ubuntu Mantic 23.10
  • Ubuntu Jammy 22.04 (LTS)
  • Ubuntu Focal 20.04 (LTS)

Docker는 64비트 x86 플랫폼이나 ARM 플랫폼에서 설치할 수 있습니다. 프로덕션 환경에서는 5년 동안 보안 업데이트를 받는 Ubuntu LTS(Long-Term-Support) 릴리스를 사용하는 것이 좋습니다.

이전 버전 제거

이전 Docker 버전은 docker 또는 docker-engine이라고 불렸습니다. 설치되어 있다면 먼저 제거하세요:

$ for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker; do sudo apt-get remove $pkg; done

또한 Docker Engine은 containerd와 runc에 의존하므로 충돌을 피하기 위해 이들도 제거하세요:

$ sudo apt-get remove containerd runc

APT 저장소를 사용하여 설치

Docker의 apt 저장소 설정

apt 패키지 인덱스를 업데이트하고 apt가 HTTPS를 통해 저장소를 사용할 수 있게 패키지를 설치합니다:

# Docker의 공식 GPG 키 추가:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Apt 소스에 저장소 추가:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

Ubuntu 파생 배포판(Linux Mint 등)을 사용한다면 VERSION_CODENAME 대신 UBUNTU_CODENAME을 사용해야 할 수 있습니다.

Docker 패키지 설치

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

편의 스크립트를 사용하여 설치

Docker는 설치 과정을 간소화하는 편의 스크립트를 제공합니다. 테스트 및 개발 환경에서 사용하는 편의 스크립트입니다. Ubuntu에서는 선택적으로 --mirror 플래그를 사용하여 미러 저장소에서 설치할 수 있습니다:

# $ curl -fsSL test.docker.com -o get-docker.sh
$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun
# $ sudo sh get-docker.sh --mirror AzureChinaCloud

이 스크립트는 모든 전제 조건을 자동으로 처리하고 Docker의 최신 안정 버전을 설치합니다.

Docker 시작

$ sudo systemctl enable docker
$ sudo systemctl start docker

루트 사용자 아닌 사용자로 Docker 관리

기본적으로, docker 명령은 Unix 소켓을 통해 Docker 엔진과 통신합니다. rootdocker 그룹의 사용자만 Unix 소켓에 접근할 수 있습니다.

루트가 아닌 사용자로 실행하려면, docker 그룹을 만들고 사용자를 그 그룹에 추가하세요:

$ sudo groupadd docker
$ sudo usermod -aG docker $USER

로그아웃했다가 다시 로그인하면 변경 사항이 적용됩니다.

Docker 설치 테스트

$ docker run --rm hello-world

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete
Digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

...

위 출력이 보인다면 Docker가 제대로 설치되었습니다.

참고 자료