Docker 설치하기

Updated:

Docker 설치 – CentOS 기준

Uninstall old versions

이전 버전들의 도커는 ‘docker’ 또는 ‘docker-engine’이라 불리며, 제거를 위해서는 관련 모듈들을 모두 제거한다.

$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

/var/lib/docker/ 안에 있는 모든 내용들(이미지, 컨테이너, 볼륨, 네트워크)들은 모두 보존된다. Docker CE 패키지들은 이제 docker-ce로 불리운다.

Docker CE 설치 – Docker’s repositories로부터 설치

Docker CE를 설치하는데는 몇가지 방법들이 있는데, 대표적인 방법만 알아본다. 여기서는 Docker’s repositories로부터 설치하는 방법을 알아본다.

Set up the repository

필요한 패키지들을 설치한다.

$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2

아래 명령어를 이용하여 ‘stable’한 repository를 set up한다.

$ sudo yum-config-manager \
    --add-repo \

[https://download.docker.com/linux/centos/docker-ce.repo]

Install DOCKER CE

최신 버전 설치

$ sudo yum install docker-ce

만약 GPG key에 관련한 prompt가 나온다면 아래 값을 확인한 후 받아들이면 된다. “값 생략하겠음”

특정 버전 설치

만약 특정 버전 설치를 원한다면, repo로부터 사용가능한 list를 얻고 선택하면 된다.

$ yum list docker-ce --showduplicates | sort -r

list로부터 특정 버전을 ‘fully qualified package name’을 주고 설치한다. ex) docker-ce-18.03.0.ce

$ sudo yum install docker-ce-<VERSION STRING>

Docker 시작시키기

$ sudo systemctl start docker

또는

$ service docker start

Docker 검증

성공적으로 잘 설치되었는지 hello-world 이미지로 검증

$ sudo docker run hello-world

사후 단계 - Linux

Manage Docker as a non-root user

도커 데몬은 TCP 포트를 사용하지 않고 Unix socket을 사용한다.

기본적으로 Unix socket은 root가 소유권을 가지며 다른 사용자들은 sudo 키워드를 이용해서만 접근할 수 있다.

따라서 이런 불편함을 없애기 위해 ‘docker’ group을 만들고, 사용할 USER를 등록시켜 사용한다.

Docker group 생성

Docker 설치 시 기본적으로 docker group이 생성되지만, 그렇지 않을 경우 생성한다.

$ sudo groupadd docker


USER 등록

Docker 설치 시 기본적으로 docker group이 생성되지만, 그렇지 않을 경우 생성한다.

$ sudo usermod –aG docker $USER


Log-out 후 Log-in 수행

vitual machine의 경우 재부팅 필요

검증

sudo 없이 실행시켜 보기

$ docker run hello-world


참고 (오류)

이미 이전에 sudo를 붙여 docker 명령어를 실행했던 이력이 있다면 다음과 같은 오류가 날 수 있다. (~/.docker/ 디렉토리가 sudo 명령어로 인해 다른 권한으로 생성되었다는 의미)

WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied

이럴 경우, ~/.docker 디렉토리를 없애거나(자동적으로 다시 생성됨), owership과 권한을 바꿔야 한다.

$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
$ sudo chmod g+rwx "$HOME/.docker" -R