본문으로 건너뛰기
홈
기술
기술 전체
프로그래밍68
컴퓨터 과학63
AI48
웹 개발36
인프라33
데이터31
소프트웨어 공학18
소개
← 목록으로인프라 › 컨테이너 › Docker

Docker 설치

목차

Docker 설치

Docker를 로컬에서 쓰는 경로는 운영체제에 따라 다르다. Windows에서는 Docker Desktop, Ubuntu 서버에서는 Docker Engine을 설치한다. 이 글의 Ubuntu 명령은 Ubuntu 24.04 새 실습 환경을 기준으로 작성했다. 지원 운영체제와 패키지 구성은 변하므로 설치 전에 Docker의 Ubuntu 설치 문서에서 현재 지원 범위를 확인한다.

2019년에 기록한 Docker 플랫폼 지원 화면

위 이미지는 2019년 당시의 화면이다. 현재 지원 플랫폼을 판정하는 자료로 사용하지 않는다. 최신 요구 사항은 Docker Desktop 설치 문서와 Docker Engine 설치 문서를 확인한다.

flowchart LR
    O[운영체제 확인] --> W[Windows: Docker Desktop]
    O --> U[Ubuntu: Docker Engine 저장소]
    U --> P[Engine과 Compose 플러그인 설치]
    W --> V[버전과 컨테이너 실행 확인]
    P --> V

Windows와 Ubuntu의 설치 프로그램은 다르지만, 설치 후에는 CLI 버전과 작은 컨테이너를 실행해 Docker 데몬까지 연결되는지 확인한다.

Windows: Docker Desktop

  1. Windows 설치 요구 사항에서 현재 Windows 버전, 가상화 지원, 메모리와 WSL 2 요구 사항을 확인한다.
  2. Docker Desktop 설치 페이지에서 설치 프로그램을 받는다. 일반적인 Linux 컨테이너 개발에는 문서의 WSL 2 백엔드 절차를 따른다. Windows 컨테이너나 Hyper-V 백엔드가 필요하면 해당 기능의 Windows 에디션과 옵션을 별도로 확인한다.
  3. 설치 후 Docker Desktop을 실행하고 터미널에서 아래 검증 명령을 실행한다.

Windows에서 항상 Hyper-V를 먼저 켜야 하는 것은 아니다. WSL 2 백엔드를 사용하면 설치 요구 사항과 동작 방식이 다르다. 회사에서 사용한다면 Docker Desktop 구독 조건도 함께 확인한다.

Ubuntu 24.04: Docker Engine

아래 명령은 Ubuntu 서버에서 실행한다. 기존에 docker.io, docker-compose, podman-docker 등 배포판 패키지로 Docker를 설치했다면 공식 문서의 충돌 패키지 목록을 먼저 확인한다. 기존 컨테이너와 볼륨이 있는 서버에서는 제거 명령을 무심코 실행하지 말고 현재 구성을 파악한다.

1. 공식 apt 저장소 등록

Docker의 GPG 키를 /etc/apt/keyrings에 두고 docker.sources 파일로 저장소를 등록한다. apt-key와 예전 Ubuntu bionic 저장소는 사용하지 않는다(공식 apt 저장소 절차).

sudo apt-get update
sudo apt-get install -y 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

sudo tee /etc/apt/sources.list.d/docker.sources >/dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

sudo apt-get update

Suites는 현재 Ubuntu 릴리스의 코드명을, Architectures는 실제 시스템 아키텍처를 사용한다. 저장소 오류가 나면 /etc/os-release와 지원 Ubuntu 릴리스가 일치하는지 확인한다.

2. Engine과 Compose 플러그인 설치

sudo apt-get install -y \
  docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl status docker --no-pager

docker-compose-plugin이 현재 Compose 설치 방식이다. 예전 docker-compose v1 실행 파일을 GitHub에서 내려받아 /usr/local/bin에 복사하는 명령은 사용하지 않는다(Compose 플러그인 설치).

3. 설치 확인

Ubuntu에서는 다음을 실행한다. Windows에서는 Docker Desktop을 시작한 뒤 sudo를 빼고 동일한 CLI 명령을 실행한다.

sudo docker version
sudo docker compose version
sudo docker run --rm hello-world

docker version에서 Client와 Server 정보가 모두 보이고, hello-world가 안내 메시지를 출력하면 CLI에서 데몬으로 연결되어 이미지를 받아 컨테이너를 실행한 것이다. docker compose version은 Compose v2 플러그인이 사용 가능한지 확인한다. 이미지 다운로드가 실패하면 먼저 네트워크·프록시·레지스트리 접근을 살핀다.

기본 설치에서는 일반 사용자가 docker 명령을 실행할 때 sudo가 필요할 수 있다. docker 그룹에 사용자를 추가하면 sudo 없이 실행할 수 있지만, 그 그룹은 호스트에 root에 준하는 권한을 준다. 공유 서버에서는 Docker의 설치 후 권한 안내를 읽고 접근 권한을 결정한다.

포트를 열기 전에

컨테이너 포트를 -p 8080:80처럼 게시하면 외부 인터페이스에 노출될 수 있다. 로컬에서만 시험한다면 -p 127.0.0.1:8080:80처럼 바인딩 주소를 지정한다. Docker가 게시한 포트는 Ubuntu의 ufw 규칙과 예상과 다르게 상호작용할 수 있으므로 Docker 방화벽 주의 사항을 확인하고 필요한 포트만 연다.

참고

같은 카테고리의 글