Ubuntu에 Docker 설치하기

김재혁·2025년 2월 5일

공통 프로젝트

목록 보기
1/12

Docker 설치

Docker Ubuntu 설치 가이드

1. Docker의 GPG 키 추가

(1)

sudo apt-get update
  • 패키지 리스트를 업데이트하여 최신 정보를 가져온다.
  • apt-get update는 설치 가능한 패키지 목록을 갱신하는 역할을 한다.

(2)

sudo apt-get install ca-certificates curl
  • ca-certificates: 인증 기관(CA, Certificate Authority)에서 발급한 SSL/TLS 인증서를 포함하는 패키지로, HTTPS 통신을 안전하게 하기 위해 필요하다.
  • curl: 파일을 다운로드하거나 웹 요청을 보내는 유틸리티로, 이후 curl을 사용하여 GPG 키를 다운로드할 때 사용된다.

(3)

sudo install -m 0755 -d /etc/apt/keyrings
  • install 명령어를 사용하여 디렉터리를 생성한다.
  • -m 0755 옵션은 생성된 디렉토리의 권한을 755(소유자는 읽기/쓰기/실행, 그룹과 기타 사용자들은 읽기/실행만 가능)로 설정한다.
  • /etc/apt/keyrings/ 디렉터리를 만들어서 GPG 키를 저장하는 위치로 사용한다.

(4)

sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
  • Docker의 GPG 키를 다운로드하여 /etc/apt/keyrings/docker.asc 파일로 저장한다.
  • -fsSL 옵션
    • -f(fail silently): HTTP 요청이 실패하면 오류 메시지를 표시하지 않고 종료.
    • -s(silent): 진행 상태를 표시하지 않음.
    • -S(show error): 오류가 발생하면 메시지를 표시.
    • -L(location): 리디렉션이 있을 경우 따라감.
  • GPG 키란?
    • 패키지의 무결성을 검증하는 데 사용된다.
    • Docker에서 제공하는 패키지가 공식적인 것이며, 중간에 변조되지 않았음을 확인하는 역할을 한다.

(5)

sudo chmod a+r /etc/apt/keyrings/docker.asc
  • GPG 키 파일(/etc/apt/keyrings/docker.asc)에 읽기 권한(모든 사용자에게 읽기 가능)을 부여한다.
  • a+r → 모든 사용자(a=all)에게 읽기(r=read) 권한 추가.

2. Docker 공식 저장소 추가

(1)

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • dpkg --print-architecture
    • 현재 시스템의 CPU 아키텍처를 출력한다.
    • 보통 amd64, arm64 같은 값이 반환된다.
  • $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
    • /etc/os-release 파일에서 Ubuntu의 코드명(codename)을 가져온다.
    • 예를 들어, Ubuntu 22.04 LTS는 jammy를 반환한다.
  • echo "deb [arch=...] ... stable"
    • Docker 패키지를 설치할 수 있도록 APT 저장소 정보를 설정한다.
    • deb [arch=...]는 아키텍처를 지정하는 부분이다.
    • signed-by=/etc/apt/keyrings/docker.asc는 위에서 다운로드한 GPG 키를 사용하여 패키지를 검증하겠다는 의미이다.
    • https://download.docker.com/linux/ubuntu는 Docker의 공식 패키지 저장소 URL이다.
    • stable은 안정적인 버전(Stable Release)만 가져오겠다는 뜻이다.
  • sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    • echo 명령어의 출력을 /etc/apt/sources.list.d/docker.list 파일에 저장한다.
    • 기존 > 리디렉션 대신 tee를 사용하여 관리자 권한을 유지하면서 파일을 수정할 수 있도록 한다.
    • > /dev/null은 출력을 화면에 표시하지 않기 위해 사용된다.

3. 패키지 목록 업데이트

(1)

sudo apt-get update
  • APT 패키지 관리자가 Docker 저장소를 인식할 수 있도록 패키지 목록을 갱신한다.

4. Docker 설치

(1)

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • docker-ce (Docker Community Edition)
    • docker-ceDocker의 커뮤니티 에디션(Community Edition, CE)을 의미한다.
    • 실행 가능한 Docker 데몬(dockerd)이 포함된다.
    • 기본적으로 systemctl start docker 명령어로 실행된다.
  • docker-ce-cli (Docker CLI)
    • docker-ce-cliDocker CLI(Command-Line Interface) 도구를 의미한다.
    • docker 명령어를 실행할 수 있도록 하는 도구
  • containerd.io (컨테이너 런타임)
    • containerd.ioDocker가 컨테이너를 실행하는 데 사용하는 런타임(runtime)을 의미한다.
    • Docker 데몬이 컨테이너를 실행할 때 실제 컨테이너를 실행하고 관리하는 역할을 한다.
    • 기본적으로 systemctl start containerd 명령어로 실행된다.
  • docker-buildx-plugin (Docker Buildx)
    • 멀티 플랫폼 빌드를 가능하게 해주는 도구
    • Docker의 기본 build 기능보다 더 빠르고 효율적인 빌드가 가능하다.
    • 특히 ARM과 같은 다른 아키텍처용 컨테이너 이미지를 빌드할 때 유용하다.
  • docker-compose-plugin (Docker Compose)
    - Docker Compose는 여러 개의 컨테이너를 한꺼번에 관리할 수 있도록 해주는 도구이다.
    - 예전에는 docker-compose라는 별도 패키지를 설치했지만,
    이제는 docker compose 명령어가 Docker에 기본 포함된다.

5. sudo 없이 Docker 실행하기

(1)

sudo usermod -aG docker $(whoami)

(2)

newgrp docker

(3)

docker version
profile
志鐵心鏡

0개의 댓글