본문 바로가기
Docker

[Docker] 02. 도커 엔진 설치

by 별준 2021. 7. 11.

Reference

 

Install Docker Engine on Ubuntu

 

docs.docker.com

Contents

  • Prerequisites
  • Install methods
  • Uninstall Docker Engine

이번 글에서 도커 엔진을 설치해보도록 하겠습니다.
저는 ubuntu 20.04 LTS를 사용하고 있어서, ubuntu 기준으로 설치하였습니다.

 

1. Prerequisites


1.1. OS Requirements

도커 엔진을 설치하기 위해서, 아래 우분투 버전 중의 하나를 만족해야 합니다. 그리고, 도커는 64bit를 권장하고 있습니다.

(32bit 설치가 불가능한 것은 아닙니다.)

  • ubuntu 21.04
  • ubuntu 20.10
  • ubuntu 20.04 (LTS)
  • ubuntu 18.04 (LTS)
  • ubuntu 16.04 (LTS)

도커 엔진은 x86_64(or amd64) / armhf / arm64 아키텍처를 지원합니다.

 

1.2. Uninstall old versions

만약 이전에 도커를 설치한 적이 있다면, 아래 커맨드로 기존 버전을 삭제하고 설치하는 것을 권장합니다.

sudo apt remove docker docker-engine docker.io containerd runc

 

그리고 기존에 저장된 도커 오브젝트인 images, containers, volumes, network가 필요없다면, '/var/lib/docker/'의 내용도 모두 제거합니다.

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

 

1.3. Supported storage drivers

우분투의 도커 엔진은 overlay2, aufs, btrfs의 Storage Driver를 지원하며, default로 overlay2를 사용합니다.

이는 필요하다면 수동으로 변경할 수 있습니다.

Storage Driver는 추후에 다시 자세하게 알아보도록 하겠습니다.

 

 

2. Installation methods


도커는 필요에 따라서 다양한 방법으로 설치가 가능합니다.

2.1. Install using the repository

도커를 처음 설치한다면, 도커를 설치하기 전에 우선 도커 Repository를 셋업해주어야 합니다.

Set up the repository

  1. apt package index를 업데이트하고, 아래의 패키지들을 설치합니다.
    sudo apt update
    sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release​
  2. 도커의 공식 GPG key를 추가합니다.
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg​
  3. 다음 커맨드를 통해서 도커 stable repository를 셋업합니다. nightly나 test repository를 사용하기를 원한다면, stable 대신 nightlytest를 입력하면 됩니다.
    echo \
      "deb [arch=amd64 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
    (위 커맨드는 x86_64 / amd64 아키텍처를 위한 커맨드입니다. 다른 아키텍처를 사용하신다면 설치 홈페이지를 참조하시기 바랍니다.)

 

Install Docker Engine

apt package index를 업데이트하고, 최신 버전의 Docker Engine / Containerd를 설치합니다.

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

 

만약 특정 버전을 설치하고 싶다면, 설치 가능한 버전을 확인하고, 설치를 진행합니다.

# 가능한 도커 설치 버전 확인
apt-cache madison docker-ce

# 특정 버전 설치(ex, 5:18.09.1~3-0~ubuntu-focal)
sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io

 

2.2. Install from a package

도커에서 제공하는 패키지 파일을 통해서 설치도 가능합니다.(인터넷이 안될 때 사용할 수 있겠네요)

https://download.docker.com/linux/ubuntu/dists/ 에서 해당하는 ubuntu version을 선택하고, pool/stable/에 들어가서, 해당하는 아키텍처 선택 후에 .deb 파일을 다운로드하고, 아래 커맨드를 통해서 설치합니다.

sudo dpkg -i <package.deb>

 

2.3. Install using the convenience script

설치 스크립트를 사용하여 편리하게 설치할 수도 있습니다.

curl -fsSL https://get.docker.com -o get-docker.sh
DRY_RUN=1 sh ./get-docker.sh

 

3. Verify that Docker Engine is install correctly


도커가 잘 설치되었는지 체크해봅시다.

sudo docker run hello-world

 

docker info

위와 같이 그냥 docker 커맨드만을 사용하면 permission denied로 에러가 발생할 수 있습니다. 이는 권한 이슈로 sudo 명령어로 입력하면 정상적으로 동작합니다. (sudo 명령어없이 사용하려면 5번을 참조하시기 바랍니다.)

 

sudo docker info

 

4. Uninstall Docker Engine


도커를 삭제하는 방법은 다음과 같습니다.

  1. Uninstall the Docker Engine, CLI, and Containerd packages
    sudo apt purge docker-ce docker-ce-cli containerd.io​
  2. Delete all images, containers, and volumes
    sudo rm -rf /var/lib/docker
    sudo rm -rf /var/lib/containerd​

 

5. Post-installation steps for linux


도커를 사용할 때에는 docker라는 명령어를 앞에 붙여서 커맨드를 입력하여 사용합니다.

컨테이너 및 이미지를 다루는 명령어는 /usr/bin/docker에서 실행되지만, 도커 엔진의 프로세스는 /usr/bin/dockerd 파일(Docker Daemon)에서 실행됩니다.

도커 데몬은 기본적으로 unix socket 기반이며, unix socket은 root 권한으로만 접근이 가능하므로, 도커 데몬은 항상 루트 권한으로 실행되어야 합니다. 즉, sudo 명령어를 붙여주어야 합니다.

(리눅스에 대해서 깊이 알지 못하다 보니 unix socket에 대해서 자세히 알지는 못합니다 ㅠ)

 

만약 docker 커맨드에 sudo 명령어를 생략하여 사용하고 싶다면, docker라는 Unix Group을 만들어서 users를 docker 그룹에 추가해주어야 합니다. (아래 링크 참조)

link : https://docs.docker.com/engine/install/linux-postinstall/

 

Post-installation steps for Linux

 

docs.docker.com

 

간단하게 아래 커맨드를 입력하고, 재부팅하면 됩니다.

sudo groupadd docker
sudo usermod -aG docker $USER

 

'Docker' 카테고리의 다른 글

[Docker] 06. 컨테이너 로깅(logging)  (0) 2021.07.13
[Docker] 05. 도커 네트워크  (0) 2021.07.13
[Docker] 04. 도커 볼륨  (0) 2021.07.12
[Docker] 03. 도커 컨테이너  (0) 2021.07.11
[Docker] 01. 도커(Docker)란  (3) 2021.07.11

댓글