설치 전 확인 사항

  • 커널 버전 확인: 리눅스 커널이 최소 3.10 버전 이상이어야한다. 아래와 같이 확인 가능하다.
$ uname -r
>> 

3.10.0-327.13.1.e17.x86_64
  • sudo 권한 혹은 root 권한을 소유한 계정에서 설치 진행
  • 최신 배포판 OS인지 확인.
    • 2020년 10월 기준 우분투 16.04, 18.04(LTS), 20.04(LTS) 지원
    • 22년 2월 기준으로 확인결과, 2021년 4월 30일부터 우분투 16.04 LTS는 더 이상의 도커 릴리즈 지원이 종료되었다. 또한 우분투 21.04, 21.10에 대한 지원을 한다.
    • 22년 8월 기준 22.04, 21.10, 20.04, 18.04 지원
  • 64비트 운영체제 확인. 32비트에서는 돌아가지 않는다.

본문에서는 도커 설치에 대한 3~4가지 설치 방식을 제안한다. 일반설치, 특정버전 설치(커맨드기반, 파일기반), 간단설치의 방식이 존재하며 본인에게 필요한 방식을 생각해보고, 잘 모르겠다면 일반설치를 따라하자.

일반 설치

업데이트 및 HTTP 패키지 설치

$ sudo apt update
$ sudo apt-get install -y ca-certificates \ 
    curl \
    software-properties-common \
    apt-transport-https \
    gnupg \
    lsb-release

GPG 키 및 저장소 추가

  • 22년 8월 기준 수정
$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

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

도커 엔진 설치

docker는 CE(Community Edition)과 EE(Enterprise Edition)으로 나뉜다. EE는 유료로 제공되는 기업용 솔루션이다. 일반적으로 무료인 CE 버전을 사용해도 핵심적인 컨테이너 기술은 동일하다.

  • 아래의 커맨드는 패키지가 제공하는 latest 버전의 도커 엔진과 컨테이너 데몬 서비스를 설치한다.
    $ sudo apt update
    $ sudo apt install docker-ce docker-ce-cli containerd.io
    

특정 버전 설치(커맨드 설치)

일단 도커엔진 설치 전 과정까지는 수행하고 특정버전을 설치하기 위해 이어서 진행한다.

설치가능한 버전 확인

터미널을 열고 다음 명령어를 입력하여 docker-cedocker-ce-cli의 설치가능한 버전을 확인할 수 있다. 둘의 결과는 동일하니 docker-ce만 확인해도 된다.

$ apt-cache madison docker-ce
>>
'''
 docker-ce | 5:20.10.12~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.11~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.10~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.9~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.8~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.7~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.6~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.5~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.4~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.3~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.2~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.1~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.0~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.15~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.14~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.13~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.12~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.11~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.10~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.9~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
'''

도커 엔진 설치

위에서 docker-ce 다음에 출력 되는 버전을 선택하여 복사하고 다음과 같이 패키지 명 옆에 버전을 붙여서 설치한다. <VERSION_STRING> 자리에 해당 버전을 적어주면 된다. ex) 5:19.03.15~3-0~ubuntu-focal

$ sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io

특정 버전 설치(파일로 설치)

버전에 맞는 설치파일(.deb) 내려받기

https://download.docker.com/linux/ubuntu/dists/ 링크에서 .deb 파일을 통해 설치한다. 본인의 우분투 릴리즈 버전 선택 후 pool/stable로 이동하면 아키텍쳐(amd64, arm64 등)에 맞게 한번 더 들어가면 파일을 내려받을 수 있다.

설치

dpkg 명령어를 통해 해당 .deb 파일을 설치한다.

$ sudo dpkg -i /path/to/package.deb

웹에서 설치 스크립트를 받아 간단설치

대부분의 리눅스 운영체제에서 개발환경에 빠르고 간단하게 사용할 수 있는 방법이다. 그러나 일반적으로는 권장하지 않는다.

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

설치 확인

도커 버전 확인

$ sudo docker version
>>
'''
Client: Docker Engine - Community
 Version:           20.10.12
 API version:       1.41
 Go version:        go1.16.12
 Git commit:        e91ed57
 Built:             Mon Dec 13 11:45:33 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.12
  API version:      1.41 (minimum version 1.12)
...
...
'''

컨테이너 실행

hello-world 컨테이너를 시험 실행하여 도커 엔진 설치를 확인한다. --rm 명령어를 주어 컨테이너 실행 후 바로 삭제되도록 한다.

$ sudo docker run --rm hello-world
>>
'''
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/
'''

권한 오류

만약 docekr info 명령어가 다음과 같이 권한 오류를 일으키며 실행이 안 될수도 있다. 일반적으로 sudo 권한을 가지는 관리자 계정으로 사용하는 것을 권장한다.

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/version": dial unix /var/run/docker.sock: connect: permission denied

하지만 일반 사용자 권한으로 docker 명령어를 사용하고 싶다면 블로그의 Docker Permission denied error 해결 포스팅을 참조하여 권할 설정을 해서 해결하자.

도커 엔진 제거

도커 엔진 및 관련 패키지 제거

다음 명령어를 수행한다.

$ sudo apt-get purge docker-ce docker-ce-cli containerd.io

잔여 호스트 이미지, 볼륨, 컨테이너 제거

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

참고: 도커 공식 메뉴얼 page

Leave a comment