::: IT인터넷 :::

우분투에 Docker 설치하기

곰탱이푸우 2021. 6. 5. 03:14

docker-ce 설치

기본적으로 cli 기반의 docker-ce를 많이 사용한다.

docker-ce는 별도의 APT 리파지토리를 사용하므로 추가 작업이 필요하다.

$ sudo apt update 
# apt가 HTTPS를 통해 저장소를 사용할 수 있도록 패키지를 설치 
$ sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common 

# 도커의 공식 GPG 키를 추가 
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 

# docker 저장소 설정 
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
     $(lsb_release -cs) stable" 

# docker-ce 최신버전 설치 
$ sudo apt update 
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose 

# docker-ce 특정버전 설치 
$ sudo apt update 
$ apt-cache madison docker-ce  

# 3개 컬럼이 출력되는데 가운데 컬럼이 VERSION_STRING이다. 
# 원하는 컬럼을 선택하고 VERSION_STRING 부분을 수정한다. 
$ sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> \
      containerd.io

 

docker 사용자 계정 권한 부여 

아래 명령을 수행하면 sudo 없이 docker 명령 사용이 가능하다.

(참고: 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-ce 사설 리파지토리 설정

기본 설정 된 Docker Hub를 이용하면 문제가 없다.

그러나 사설 리파지토리를 사용하는 경우 추가 접근 권한을 설정해야 한다. (HTTP 리파지토리인 경우)

$ sudo gedit /etc/docker/daemon.json

# 아래 내용을 추가한다.
{
    "insecure-registries": ["주소:포트"]
}

# 여러 개인 경우 다음과 같이 추가한다.
{
    "insecure-registries": ["주소:포트", "주소:포트", ~~]
}

# docker 서비스 재시작
$ sudo service docker restart

# docker 정보를 출력하고 하단의 insecure-repositories에 추가되었는지 확인한다.
$ docker info

# docker image 경로에 insecure-registries에 추가한 주소:포트가 추가되어야 한다.
$ docker pull 주소:포트/hello-world:latest

사설 리파지토리가 HTTPS인 경우 해당 리파지토리와 클라이언트에 추가 인증서 작업을 진행해야 한다.

손이 많이 가고, 오래 걸리고, 귀찮아서 진행하지 않고 HTTP를 사용한다.