본문 바로가기
  • 오늘처럼
소프트웨어 아키텍처/Docker

리눅스 환경(온라인)에 도커 설치하기

by bluefriday 2021. 9. 24.
반응형

도커는 리눅스 컨테이너 기술을 사용하여 컨테이너를 구동하게 해주고, 추가로 컨테이너 이미지를 빌드하고 저장소에 pull/push가지 할수 있게 해주는 오픈소스 프로젝트이다. 물론 상용화 버전도 존재하며, 초기 리눅스 환경에서 사용되는 것을 넘어서 가상 머신 등을 이용하여 윈도우즈 운영체제 등에서도 사용되고 있다. 최근에는 윈도우 컨테이너라는 개념까지 등장하여 컨테이너 서비스의 사용 사례가 늘어나고 있다. 

이번에는 리눅스 환경에 도커를 설치하고 설정을 적용하는 방법에 대해 다루어보자. 앞에서 언급한 윈도우 컨테이너의 개념, 윈도우에서의 리눅스 컨테이너 사용에 대한 부분도 추후에 다뤄보기로 한다. 

설치 과정은 다음의 단계로 구성된다.

  1. 기존 도커 패키지 삭제
  2. 도커 패키지 설치
  3. 도커 설정 파일 확인
  4. 도커 서비스 구동 및 확인

 

1. 기존 도커 패키지 삭제

다른 라이브러리, 패키지의 설치와 동일하게, 먼저 현재 환경에서 도커(혹은 더 낮은 버전의 도커)가 설치되어 있는 경우 기존 도커를 삭제하는 과정을 진행한다. 만약 도커가 설치되어 있지 않는 경우 다음 단계의 '도커 패키지 설치' 항목으로 바로 넘어가자. 이 단계에서는 도커 서비스와 컨테이너 런타임인 containerd 를 중지하고 관련 데이터 디렉토리를 삭제하여 도커 패키지를 모두 제거한다.

### docker 관련 패키지 삭제 (ubuntu 계열 os)
sudo yum remove docker docker-* containerd.io 
### docker 관련 패키지 삭제 (centos 계열 os)
sudo apt-get purge docker docker-* containerd.io

### docker, containerd data dir 삭제
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

 

 

2. 도커 패키지 설치

이제 도커 패키지를 설치한다. 기본적으로 인터넷이 연결된 환경에서 yum, apt 등의 패키지 인스톨러를 사용하여 설치를 진행하며 네트워크 환경이 인터넷 망과 연결되지 않은 경우 본 블로그의 오프라인 설치 관련 포스팅을 참고하자.

설치 과정은 centos, ubuntu 로 구분하였으며 각 os에 맞게 하단 명령어를 이용하여 설치한다.

ubuntu, debian 계열의 docker 설치

sudo apt-get update

sudo apt-get install \
   apt-transport-https \
   ca-certificates \
   curl \
   gnupg \
   lsb-release
    
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

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

 

centos 계열의 docker 설치

### yum 패키지에 도커 설치 저장소 추가
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

### yum 명령어를 통한 도커 온라인 설치
sudo yum update
sudo yum install -y docker-ce docker-ce-cli containerd.io

 

 

3. 도커 설정 파일 확인

도커의 설치를 끝낸 후에는 관련 설정들을 확인한다. linux 환경에서는 /etc/docker/daemon.json 파일이 설정 파일의 기본 경로이며, 자동으로 생성되지 않았을 경우 동일이름으로 touch, vi 등의 명령어로 생성할 수 있다. 별다른 도커 설정을 추가하지 않을 경우 설정 파일 자체를 만들지 않아도 무관하며 이 단계를 생략해도 된다.

이 설정 파일을 수정하여 도커와 관련된 거의 모든 옵션을 조정할 수 있다. 많은 옵션이 있으며 

  • 로그 파일 용량 제한 및 로그 파일 형식
  • insecure registry 설정
  • storage driver 설정

등과 같은 여러 사용 사례에 이 설정 파일을 수정하여야 한다. 옵션에 대하여는 docker daemon 옵션의 공식페이지를 참조하자. 아래는 docker 의 data directory를 변경하는 경우의 daemon.json 파일의 예제이다.

root@localhost:/] cat /etc/docker/daemon.json
{
	...
    "data-root": "/var/lib/docker",
    ...
}

설정 파일을 변경하였으면 이제 도커 서비스를 재구동한다. 이후 도커와 관련된 설정을 변경하기 위하여 위 설정파일을 변경할 경우에도 해당 설정을 적용하기 위하여 프로세스의 재시작이 필요하다.

### 도커 서비스 재기동
root@localhost:/] systemctl daemon-reload
root@localhost:/] systemctl restart docker
root@localhost:/] systemctl status docker

 

 

4. 도커 서비스 구동 및 확인

설정 파일을 확인하였으면 이제 docker 서비스를 재기동하고 버전을 확인하여 도커 서비스가 정상 구동되었음을 확인한다. docker version 명령어를 사용하면 docker server 와 docker client 의 버전을 모두 확인할 수 있다.

root@localhost:/] docker version
Client: Docker Engine - Community
 Version:           20.10.2
 API version:       1.41
 Go version:        go1.13.15
 Git commit:        2291f61
 Built:             Mon Dec 28 16:17:48 2020
...

Server: Docker Engine - Community
 Engine:
  Version:          20.10.2
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       8891c58
  ...
 containerd:
  Version:          1.4.3
  GitCommit:        269548fa27e0089a8b8278fc4fc781d7f65a939b
 ...
root@localhost:/]

 

이렇게 해서 docker 패키지를 설치하고 설정파일을 확인하였다. 이 후에는 docker 컨테이너를 구동하고 삭제하는 방법에 대해 알아보자.


 

*참고 : 만약 docker version 의 결과로 Server 의 버전이 정상적으로 표시되지 않을 경우 dockerd(docker server) 프로세스가 정상 구동이 되지 않았으므로 로그 등을 확인하여 다시 구동하여 본다. 

[root@localhost:/] docker version
Client: Docker Engine - Community
 Version:           19.03.5
 API version:       1.40
 Go version:        go1.12.12
 Git commit:        633a0ea
 Built:             Wed Nov 13 07:25:41 2019
 OS/Arch:           linux/amd64
 Experimental:      false
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
[root@localhost:/]

 

'소프트웨어 아키텍처 > Docker' 카테고리의 다른 글

Docker container 와 seccomp  (0) 2022.09.23
Docker registry API - push  (1) 2021.10.14
Docker - data directory 변경하기  (0) 2021.09.23
Docker registry API - pull  (0) 2021.09.22
Docker compose 의 사용  (0) 2021.09.07

댓글