본문으로 건너뛰기

Debian에서 Docker 설치하기

경고: 먼저 Docker APT 저장소를 구성하지 않고 apt 명령어로 Docker를 직접 설치하지 마세요.

전제 조건

시스템 요구 사항

Docker는 다음 버전의 데비안 운영 체제를 지원합니다:

  • 데비안 북윈드 12 (안정 버전)
  • 데비안 불세이 11 (구 안정 버전)

오래된 버전 제거

Docker 엔진을 설치하기 전에 충돌하는 패키지를 제거해야 합니다.

디스트로 관리자는 저장소에서 Docker 패키지의 공식 배포본을 제공합니다. 공식 버전의 Docker 엔진을 설치하기 전에 이러한 패키지를 제거해야 합니다.

제거해야 하는 비공식 패키지는 다음과 같습니다:

  • docker.io
  • docker-compose
  • docker-doc
  • podman-docker

또한 Docker 엔진은 containerd와 runc에 의존합니다. Docker 엔진은 이러한 종속성을 containerd.io라는 단일 번들로 제공합니다. 이전에 containerd나 runc를 설치한 경우 Docker 엔진과 번들로 제공되는 버전 간의 충돌을 방지하기 위해 제거하세요.

이전 버전의 Docker는 docker 또는 docker-engine라고 불렸습니다. 이러한 오래된 버전을 제거하세요:

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

/var/lib/docker/에 저장된 이미지, 컨테이너, 볼륨 및 네트워크는 Docker를 제거할 때 자동으로 제거되지 않습니다. 깨끗한 설치를 시작하고 기존 데이터를 정리하려면 다음을 실행하세요. 모든 이미지, 컨테이너 및 볼륨을 삭제하려면:

sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

APT 저장소를 사용하여 설치

새 호스트 머신에서 처음으로 Docker 엔진을 설치하기 전에 Docker apt 저장소를 설정해야 합니다. 그 후에는 저장소에서 Docker를 설치하고 업데이트할 수 있습니다.

# 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/debian/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/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

일부 데비안 기반 리눅스 배포판에서는 $(lsb_release -cs)가 데비안 버전 코드명을 반환하지 않을 수 있습니다 (예: Kali Linux, BunsenLabs Linux).

Docker 설치

최신 Docker

apt 패키지 인덱스를 업데이트하고 docker-ce 패키지를 설치합니다:

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

특정 버전의 Docker

# 사용 가능한 버전 나열:
apt-cache madison docker-ce | awk '{ print $3 }'

5:25.0.0-1~debian.12~bookworm
5:24.0.7-1~debian.12~bookworm
...

원하는 버전을 선택하고 설치합니다:

VERSION_STRING=5:25.0.0-1~debian.12~bookworm
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin

Docker 확인

hello-world 이미지를 실행하여 설치가 성공적인지 확인합니다:

 sudo docker run hello-world

이 명령은 테스트 이미지를 다운로드하고 컨테이너에서 실행합니다. 컨테이너가 실행되면 확인 메시지를 출력하고 종료됩니다.

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

테스트 또는 개발 환경의 경우, Docker는 데비안 시스템에서 설치 프로세스를 단순화하는 편의 스크립트를 제공합니다. --mirror 옵션을 사용하여 지역 미러에서 설치할 수도 있습니다:

Docker 테스트 버전을 설치하려면 스크립트를 test.docker.com에서 가져옵니다.

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

이 명령을 실행하면 스크립트에서 자동으로 모든 준비 작업을 수행하고 시스템에 안정 버전의 Docker를 설치합니다.

Docker 시작

$ sudo systemctl enable docker
$ sudo systemctl start docker

Docker 사용자 그룹 만들기

기본적으로 docker 명령은 Docker 엔진과 통신하기 위해 Unix 소켓을 사용합니다. root 사용자와 docker 그룹의 사용자만 Docker 엔진의 Unix 소켓에 액세스할 수 있습니다. 보안상의 이유로 리눅스 시스템에서 root 사용자를 사용하는 것은 일반적으로 좋습니다. 보안상의 이유로 리눅스 시스템에서 root 사용자를 사용하는 것이 권장되지 않습니다. 따라서 docker를 사용해야 하는 사용자를 docker 사용자 그룹에 추가하는 것이 더 나은 방법입니다.

docker 그룹 생성:

$ sudo groupadd docker

현재 사용자를 docker 그룹에 추가:

$ sudo usermod -aG docker $USER

로그아웃 후 다시 로그인하여 변경 사항을 적용합니다. 그런 다음 Docker가 올바르게 설치되었는지 테스트합니다.

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.

To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/

For more examples and ideas, visit:
https://docs.docker.com/get-started/

위와 같은 출력이 표시되면 설치가 성공적임을 의미합니다.

참조 문서