[리눅스] CentOS/RHEL 8 - Docker 설치의 모든 것 (방법 3가지)

반응형

 

docker 설치 방법 총 3가지입니다.

외부 통신이 되는 환경과 그렇지 않은 곳, 어디서든 docker를 설치할 수 있게끔 준비했습니다.

외부 통신은 자세히 설명하고, 폐쇄망에서의 설치는 간단하기에 요약하여 작성하였습니다.

 

 

docker 기존 버전 제거

설치하고자 하는 특정 버전 또는 최신 버전을 설치하기 전 기존에 구성되어 있는 Docker를 제거한 후 설치하자

# yum remove docker 
          docker-client
          docker-client-latest 
          docker-common 
          docker-latest 
          docker-latest-logrotate 
          docker-logrotate 
          docker-engine

 

 

도커 설치 방법① (외부 통신 가능한 환경) - docker repository + yum

yum-utils 설치 및 docker repository 등록

# yum install -y yum-utils
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

yum-utils 설치를 통해 안정적인 docker 저장소를 활성화하고, docker repo 등록 후에는 /etc/yum.repos.d/ 아래에 docker-ce.repo가 생성되며, 아래와 같이 docker 패키지 조회가 되는지 확인하자!

# yum list | grep -i docker-ce
 containerd.io.x86_64                 1.6.6-3.1.el8                  docker-ce-stable
 docker-ce.x86_64                     3:20.10.17-3.el8               docker-ce-stable
 docker-ce-cli.x86_64                 1:20.10.17-3.el8               docker-ce-stable
 docker-ce-rootless-extras.x86_64     20.10.17-3.el8                 docker-ce-stable
 docker-compose-plugin.x86_64         2.6.0-3.el8                    docker-ce-stable
 docker-scan-plugin.x86_64            0.17.0-3.el8                   docker-ce-stable

정상적으로 조회 잘됨!

 

 

docker 패키지 설치 (에러 발생)

CentOS, RHEL 8부터는 기본적으로 podman, buildah 패키지가 설치되어 있는데 이거 때문에 아래와 같이 에러가 발생한다. "문제 1:", "문제 2:"를 잘 보면 된다.(밑에 buildah 부분은 길어서 생략됨)

# yum install docker-ce docker-ce-cli containerd.io
마지막 메타 데이터 만료 확인 :0:06:17. 2022년 07월 06일 (수) 오전 12시 01분 35초 이전에 확인
오류:
 문제 1: problem with installed package podman-3.2.3-0.11.module_el8.4.0+942+d25aada8.x86_64
  - package podman-3.2.3-0.11.module_el8.4.0+942+d25aada8.x86_64 requires runc >= 1.0.0-57, but none of the providers can be installed
  - package podman-3.0.1-6.module_el8.4.0+781+acf4c33b.x86_64 requires runc >= 1.0.0-57, but none of the providers can be installed
  - package podman-3.0.1-7.module_el8.4.0+830+8027e1c4.x86_64 requires runc >= 1.0.0-57, but none of the providers can be installed
  - package podman-3.2.3-0.10.module_el8.4.0+886+c9a8d9ad.x86_64 requires runc >= 1.0.0-57, but none of the providers can be installed
  - package containerd.io-1.6.6-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-74.rc95.module_el8.4.0+886+c9a8d9ad.x86_64
  - package containerd.io-1.6.6-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-74.rc95.module_el8.4.0+886+c9a8d9ad.x86_64
  - package containerd.io-1.6.6-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-70.rc92.module_el8.4.0+673+eabfc99d.x86_64
  - package containerd.io-1.6.6-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-70.rc92.module_el8.4.0+673+eabfc99d.x86_64
  - package containerd.io-1.6.6-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-73.rc93.module_el8.4.0+830+8027e1c4.x86_64
  - package containerd.io-1.6.6-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-73.rc93.module_el8.4.0+830+8027e1c4.x86_64
  - cannot install the best candidate for the job
  - package runc-1.0.0-64.rc10.module_el8.4.0+522+66908d0c.x86_64 is filtered out by modular filtering
  - package runc-1.0.0-65.rc10.module_el8.4.0+819+4afbd1d6.x86_64 is filtered out by modular filtering
  - package runc-1.0.0-70.rc92.module_el8.4.0+786+4668b267.x86_64 is filtered out by modular filtering
  - package runc-1.0.0-71.rc92.module_el8.4.0+833+9763146c.x86_64 is filtered out by modular filtering
  - package runc-1.0.0-72.rc92.module_el8.4.0+964+56b6762f.x86_64 is filtered out by modular filtering
 문제 2: package podman-3.0.1-6.module_el8.4.0+781+acf4c33b.x86_64 requires runc >= 1.0.0-57, but none of the providers can be installed
  - package containerd.io-1.4.3-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-70.rc92.module_el8.4.0+673+eabfc99d.x86_64
  - package containerd.io-1.4.3-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-70.rc92.module_el8.4.0+673+eabfc99d.x86_64
  - package containerd.io-1.4.3-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-73.rc93.module_el8.4.0+830+8027e1c4.x86_64
  - package containerd.io-1.4.3-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-73.rc93.module_el8.4.0+830+8027e1c4.x86_64
  - package containerd.io-1.4.3-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-74.rc95.module_el8.4.0+886+c9a8d9ad.x86_64

 

podman, buildah 패키지 삭제

이 패키지를 먼저 삭제 후 설치해야 충돌이 없으므로 아래처럼 삭제시킨다. (Redhat에서는 이런 문제로 인해 docker 설치를 임의로 차단했음)

# yum remove -y podman
종속성이 해결되었습니다.
============================================================================================================================================================================
 패키지                                 아키텍처                     버전                                                            리포지터리                        크기
============================================================================================================================================================================
삭제 중:
 podman                                 x86_64                       3.2.3-0.11.module_el8.4.0+942+d25aada8                          @AppStream                        48 M
종속 패키지 제거:
 cockpit-podman                         noarch                       32-2.module_el8.4.0+886+c9a8d9ad                                @AppStream                       410 k
사용하지 않는 종속 패키지 제거:
 conmon                                 x86_64                       2:2.0.29-1.module_el8.4.0+886+c9a8d9ad                          @AppStream                       164 k
 podman-catatonit                       x86_64                       3.2.3-0.11.module_el8.4.0+942+d25aada8                          @AppStream                       760 k

트랜잭션 요약
============================================================================================================================================================================
삭제  4 패키지

 

# yum remove -y buildah
종속성이 해결되었습니다.
============================================================================================================================================================================
 패키지                                 아키텍처                    버전                                                              리포지터리                       크기
============================================================================================================================================================================
삭제 중:
 buildah                                x86_64                      1.21.4-2.module_el8.4.0+942+d25aada8                              @AppStream                       30 M
사용하지 않는 종속 패키지 제거:
 container-selinux                      noarch                      2:2.167.0-1.module_el8.4.0+942+d25aada8                           @AppStream                       48 k
 containers-common                      x86_64                      1:1.3.1-5.module_el8.4.0+886+c9a8d9ad                             @AppStream                      231 k
 criu                                   x86_64                      3.15-1.module+el8.4.0+10607+f4da7515                              @AppStream                      1.4 M
 fuse-overlayfs                         x86_64                      1.6-1.module_el8.4.0+886+c9a8d9ad                                 @AppStream                      145 k
 fuse3                                  x86_64                      3.2.1-12.el8                                                      @anaconda                        90 k
 fuse3-libs                             x86_64                      3.2.1-12.el8                                                      @anaconda                       279 k
 libnet                                 x86_64                      1.1.6-15.el8                                                      @AppStream                      166 k
 libslirp                               x86_64                      4.3.1-1.module+el8.4.0+10607+f4da7515                             @AppStream                      129 k
 runc                                   x86_64                      1.0.0-74.rc95.module_el8.4.0+886+c9a8d9ad                         @AppStream                       12 M
 slirp4netns                            x86_64                      1.1.8-1.module+el8.4.0+10607+f4da7515                             @AppStream                       98 k

트랜잭션 요약
============================================================================================================================================================================
삭제  11 패키지

 

 

docker 패키지 설치 (성공)

# yum install -y docker-ce docker-ce-cli containerd.io
마지막 메타 데이터 만료 확인 :0:29:27. 2022년 07월 06일 (수) 오전 12시 01분 35초 이전에 확인
종속성이 해결되었습니다.
============================================================================================================================================================================
 패키지                                      아키텍처                 버전                                                         리포지터리                          크기
============================================================================================================================================================================
설치 중:
 containerd.io                               x86_64                   1.6.6-3.1.el8                                                docker-ce-stable                    33 M
 docker-ce                                   x86_64                   3:20.10.17-3.el8                                             docker-ce-stable                    22 M
 docker-ce-cli                               x86_64                   1:20.10.17-3.el8                                             docker-ce-stable                    29 M
종속 패키지 설치 중:
 container-selinux                           noarch                   2:2.167.0-1.module_el8.4.0+942+d25aada8                      AppStream                           52 k
 docker-ce-rootless-extras                   x86_64                   20.10.17-3.el8                                               docker-ce-stable                   4.7 M
 fuse-overlayfs                              x86_64                   1.6-1.module_el8.4.0+886+c9a8d9ad                            AppStream                           73 k
 fuse3                                       x86_64                   3.2.1-12.el8                                                 BaseOS                              50 k
 fuse3-libs                                  x86_64                   3.2.1-12.el8                                                 BaseOS                              94 k
 libcgroup                                   x86_64                   0.41-19.el8                                                  BaseOS                              70 k
 libslirp                                    x86_64                   4.3.1-1.module_el8.4.0+575+63b40ad7                          AppStream                           69 k
 slirp4netns                                 x86_64                   1.1.8-1.module_el8.4.0+641+6116a774                          AppStream                           51 k
취약한 종속 패키지 설치 중:
 docker-scan-plugin                          x86_64                   0.17.0-3.el8                                                 docker-ce-stable                   3.8 M

트랜잭션 요약
============================================================================================================================================================================
설치  12 패키지
# systemctl start docker
# systemctl status docker
# systemctl enable docker
# docker version
Client: Docker Engine - Community
 Version:           20.10.17
 API version:       1.41
 Go version:        go1.17.11
 Git commit:        100c701
 Built:             Mon Jun  6 23:03:11 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.17
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.11
  Git commit:       a89b842
  Built:            Mon Jun  6 23:01:29 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.6
  GitCommit:        10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
 runc:
  Version:          1.1.2
  GitCommit:        v1.1.2-0-ga916309
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

 

 

docker 패키지 삭제

# yum remove -y docker-ce docker-ce-cli containerd.io
종속성이 해결되었습니다.
============================================================================================================================================================================
 패키지                                      아키텍처                 버전                                                        리포지터리                           크기
============================================================================================================================================================================
삭제 중:
 containerd.io                               x86_64                   1.6.6-3.1.el8                                               @docker-ce-stable                   125 M
 docker-ce                                   x86_64                   3:20.10.17-3.el8                                            @docker-ce-stable                    95 M
 docker-ce-cli                               x86_64                   1:20.10.17-3.el8                                            @docker-ce-stable                   140 M
사용하지 않는 종속 패키지 제거:
 container-selinux                           noarch                   2:2.167.0-1.module_el8.4.0+942+d25aada8                     @AppStream                           48 k
 docker-ce-rootless-extras                   x86_64                   20.10.17-3.el8                                              @docker-ce-stable                    16 M
 docker-scan-plugin                          x86_64                   0.17.0-3.el8                                                @docker-ce-stable                    13 M
 fuse-overlayfs                              x86_64                   1.6-1.module_el8.4.0+886+c9a8d9ad                           @AppStream                          145 k
 fuse3                                       x86_64                   3.2.1-12.el8                                                @BaseOS                              90 k
 fuse3-libs                                  x86_64                   3.2.1-12.el8                                                @BaseOS                             279 k
 libcgroup                                   x86_64                   0.41-19.el8                                                 @BaseOS                             136 k
 libslirp                                    x86_64                   4.3.1-1.module_el8.4.0+575+63b40ad7                         @AppStream                          129 k
 slirp4netns                                 x86_64                   1.1.8-1.module_el8.4.0+641+6116a774                         @AppStream                           98 k

트랜잭션 요약
============================================================================================================================================================================
삭제  12 패키지

 

 

 

도커 설치 방법② (폐쇄망 환경) - rpm 파일 + yum

RPM 설치 파일 다운로드

https://download.docker.com/linux/centos/8/x86_64/stable/Packages/

설치하는 운영체제 버전 및 32/64비트 구분하여 다운받으세요~

(제 환경은 RHEL 8.4 64비트입니다.)

containerd.io-1.6.6-3.1.el8.x86_64.rpm
docker-ce-20.10.9-3.el8.x86_64.rpm
docker-ce-cli-20.10.9-3.el8.x86_64.rpm
docker-ce-rootless-extras-20.10.9-3.el8.x86_64.rpm
docker-scan-plugin-0.9.0-3.el8.x86_64.rpm
docker-compose-plugin-2.6.0-3.el8.x86_64.rpm

 

 

RPM 설치

rpm 패키지를 서버에 업로드 후 해당 경로 안에서 아래 명령어 수행 (삭제는 yum remove 명령어 이용)

yum install *.rpm

 

 

 

도커 설치 방법③ (폐쇄망 환경) - 설치용 스크립트

설치용 스크립트 파일 다운로드 및 실행

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

폐쇄망이므로 curl 명령어로 스크립트 파일 다운이 불가능할 테니, 외부에서 다운로드한 파일을 서버에 업로드시키면 되겠다.

반응형

댓글

Designed by JB FACTORY