Ubuntu에서 Docker 설치 (Docker Repo 사용)

코코블루·2022년 2월 27일
0

Server

목록 보기
3/12

Ubuntu에서 Docker를 설치할 때, 기본 apt repo를 사용해도 설치가 됩니다. 하지만, 이 경우에는 최신 버전으로 설치가 되지 않습니다. 그래서, 보안 문제라던지, Docker-compose 최신 구성 파일을 읽지 못한다던지 하는 문제가 존재합니다. 이번 글에서는 Docker를 정식으로 제공하는 Repo에서 설치하고, Docker-compose까지 최신 버전으로 설치 후, Rootless 모드까지 설정하는 순서를 다루어보겠습니다.

필요한 패키지 설치하기

Docker를 설치하기 전 Repo를 업데이트하고, 기존에 있는 패키지를 업그레이드 하겠습니다. 아래 명령어를 통해 진행합니다.

$ sudo apt-get update && apt-get upgrade -y

이후, 아래 명령어를 통해 Docker-ce에 필요한 패키지를 설치합니다.

$ sudo apt-get install ca-certificates curl gnupg lsb-release -y

Docker 설치하기

GPG Key 추가

아래 명령어를 이용하여 Docker의 gpg Key를 추가합니다.
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
gpg 명령어에 sudo가 포함되어 있으므로, root 권한에 주의하여 진행합니다.

Stable 채널 설정

아래 명령어를 통해 Stable 채널에서 다운로드 받도록 설정합니다.

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

다른 채널을 원하는 경우

만일, nightlytest 채널을 원하는 경우 위 명령어에서 stable을 원하는 채널로 변경합니다.

APT Repo 업데이트

위 작업을 완료하셨으면, APT update 시, Docker Repo도 탐색하게 됩니다. 아래 명령어를 통해 패키지 목록을 업데이트 합니다.

$ sudo apt-get update

Docker 설치

이제 패키지 리스트에 Docker가 생겼으니 아래 명령어를 통해 Docker를 설치합니다.

$ sudo apt-get install docker-ce docker-ce-cli containerd.io -y

특정 버전 설치를 원하는 경우

특정 Docker 버전 설치를 원하는 경우, 먼저 아래 명령어를 통해 버전 리스트를 확인합니다.
$ apt-cache madison docker-ce
이후 등장하는 버전 코드를 이용하여 버전을 지정하여 설치합니다.
EX) $ sudo apt-get install docker-ce=5:18.09.0~3-0~ubuntu-bionic docker-ce-cli=5:18.09.0~3-0~ubuntu-bionic containerd.io -y
위와 같이 docker-ce, docker-ce-cli 패키지에 = 을 붙히고, 설치를 원하는 버전 코드를 기재합니다.

잘 설치되었는지 확인

잘 설치되었는지 확인하기 위해서는 실제로 예제 컨테이너를 하나 띄워보면 됩니다. 아래 명령어를 통해 hello-world 컨테이너를 띄웁니다.

$ sudo docker run hello-world


명령어 입력 후 위 화면처럼 "Hello from Docker!"라는 메시지가 나오면 성공입니다.

Docker-Compose 설치

Docker-Compose를 사용하지 않는다면 이 과정은 진행하지 않으셔도 좋습니다.
Docker-Compose의 경우에도 APT에 있는 기본 버전으로 설치하게 되면 구 버전이 설치됩니다. 그러므로 Docker-Compose 구성 파일을 최신 문법을 사용한 파일을 읽는 경우 문제가 됩니다. 그래서 이 또한 최신 버전으로 설치하는 것을 권장하는데, 설치하는 방법은 아래와 같습니다.

설치할 버전 찾기

Docker Docs의 명령어에도 1.29.2 버전을 지칭하고 있는데요. 일단, 설치하고자 하는 버전을 찾아보겠습니다.

Docker-Compose의 버전은 Github의 Release 페이지를 찾아보면 되는데요. Release 페이지의 태그를 기억하시고, 아래 명령어에서 1.29.2를 설치하고자 하는 버전의 숫자로 변경하시면 됩니다.

# curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

이 글을 작성하는 시점에서는 2.2.3 버전이 최신 버전이니 아래와 같이 구성하면 됩니다.

# curl -L "https://github.com/docker/compose/releases/download/2.2.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Docker Rootless 모드 설치

위 과정을 따라하시면, Docker, Docker-Compose 모두 root 권한을 요구하게 됩니다. 하지만, APT에서 기본적으로 있는 Docker를 설치했을 때에는 root 권한을 요구하지 않는데요. 이는 Rootless 모드를 설치하시면 이전과 같이 사용할 수 있게 됩니다.

필요한 패키지 설치

Docker Rootless 모드를 설치하기 위해 필요한 패키지를 설치하겠습니다. 아래 명령어를 통해 설치합니다.
$ sudo apt-get install dbus-user-session -y
위 명령어를 실행 후, 설치하고 나서 로그아웃 후 다시 로그인합니다.

도커 끄기

혹시 모를 에러를 방지하기 위해 아래 명령어를 통해 Docker를 끄겠습니다.

$ sudo systemctl stop docker.socket
$ sudo systemctl stop docker

그리고 시스템 상에 활성화 되어 있을 수 있는 Docker 자동 시작도 비활성화하겠습니다.

$ sudo systemctl disable --now docker.service docker.socket

설치하기

아래 명령어를 통해 설치합니다.
curl -fsSL https://get.docker.com/rootless | sh

PATH 등록

설치가 제대로 완료되었다면 터미널에 등장하는 값을 환경 변수에 등록합니다.

완료


위와 같이 환경변수까지 등록을 완료하였다면, 사진과 같이 docker 명령어를 호출할 때 sudo를 사용하지 않아도 됩니다.

Trouble Shooting

GPG 키 추가 중에 WARNING이 등장한 경우

WARNING이기 때문에 무시하고 진행하셔도 됩니다만, GPG 키 추가 중에 gpg: WARNING: unsafe ownership on homedir '/home/$(USER)/.gnupg' 메시지가 등장한 경우, 아래 명령어를 순서대로 입력하여 해결합니다.

# gpgconf --kill dirmngr
# chown -R $USER ~/.gnupg

참고한 문서

Docker 설치 과정: Docker Docs
Docker-Compose 설치 과정: Docker Docs
Docker Rootless 활성화: Docker Docs
GPG Key WARNING 해결: StackExchange

profile
Have A Happy Coding Time!

0개의 댓글