Ubuntu 서버에 Docker 설치하기

이 문서에서 핵심이 되는 단어는 “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, “OPTIONAL” 입니다. 이것은 RFC 2119 에서 정의한 뜻과 내용을 기준으로 합니다.
The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119.

기존 Docker 제거

이전 버전의 Docker가 이미 서버에 존재하는 경우에만 필요한 가이드입니다.

업그레이드되는 기능과 충돌을 피하기 위하여 기존 apt로 설치된 패키지를 반드시(MUST) 모두 제거해야 합니다.

Bash
sudo apt remove docker.io docker-doc docker-compose podman-docker containerd runc

기존 Docker를 제거하는 이유는 버전 충돌과 종속성 문제를 방지하기 위해서입니다. 여러 Linux 배포판에서 Docker 패키지를 제공하고 있지만, 일반적으로 Docker 공식 소스가 아닌 배포판 자체의 패키지 관리자를 통해 설치된 버전입니다.

이러한 패키지는 각 배포판의 패키지 유지 관리자가 빌드하고 유지 관리하기 때문에 Docker의 구성이 변경되거나 수정된 ​​소스 코드에서 빌드될 수 있습니다. 이러한 차이는 Docker에서 설치하고자 하는 공식 버전과 기능이 호환되지 않거나 충돌을 일으킬 가능성이 있습니다.

기존 Docker의 모든 파일을 제거하는 경우 아래 명령어를 추가로 실행할 수 있습니다(MAY).

Bash
# 기존 Docker의 내용을 모두 제거하고 싶은 경우 추가로 실행
sudo rm -rf /var/lib/docker /var/lib/containerd

저장소를 이용하여 Docker 설치

저장소 추가

Docker를 설치하기 위한 저장소를 반드시(MUST) 추가합니다.

Bash
sudo apt update
sudo apt 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

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 update

Docker 설치

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

Docker와 Docker compose가 함께 설치됩니다.

빠른 Docker 설치

위 과정이 모두 포함되어 있는 스크립트를 바로 사용할 수 있습니다(OPTIONAL).

Bash
# 기존 Docker를 제거하기 위한 스크립트입니다.
# ~/.docker 폴더와 ~/bin 폴더가 함께 삭제됩니다.
curl docker.192.168.0.200/deb/remove | bash

# Docker 설치를 위한 스크힙트입니다.
curl docker.192.168.0.200/deb/install | bash

Docker 설치 확인

hello-world 이미지로 Docker의 정상 동작을 확인할 수 있습니다(OPTIONAL).

Bash
sudo docker run hello-world
sudo docker ps -a -q -f "ancestor=hello-world" | \
xargs docker rm

Docker를 사용자 모드에서 실행

Docker를 sudo 명령 없이 사용자 모드에서 실행할 수(MAY) 있습니다. 이 과정은 Docker의 업그레이드 또는 재설치가 필요하지 않습니다.

Bash
sudo usermod -aG docker $USER
sudo systemctl restart docker # Docker 재실행

현재 사용자 계정을 docker 그룹에 추가하여 Docker를 실행할 수 있는 권한을 만듭니다. Docker를 재실행하면 설정이 완료됩니다.

이후 Docker가 사용자 모드에서 정상적으로 동작하는지 확인하고 싶은 경우 현재 사용 중인 세션을 종료하고 다시 로그인하는 것을 권장합니다(SHOULD).

또는 아래 명령으로 현재 세션을 갱신할 수 있습니다. 이 경우 변경된 설정을 사용자 계정에 바로 적용할 수 있습니다.

Bash
newgrp docker

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다