[RedHat] Docker Install

RHEL8 버전 에서 Docker install 하는 방법에 대해 확인해 보겠습니다. 레드햇에서는  RHEL8 이상부터 Docker 지원을 중단합니다. 그러나 Docker는 OpenSource로 제공되는 제품이기 때문에 누구나 다운로드해 사용할 수 있습니다. 다만 Docker 지원을 중단한다고 하는 건 RedHat 쪽에서 RHEL8 버전용 Docker RPM 패키지 파일을 만들지 않겠다는 것입니다. 레드햇에서 제공하는 패키지가 아니기 때문에 Docker 사용 중 발생한 이슈로부터 기술 지원을 받을 수 없는 단점이 있습니다.

운영 환경에서 기술 지원을 받으면서 Container를 사용하기 위해서는 Docker 대안으로 Opensource 제품인 Podman을 사용할 수 있습니다.

 

환경

RHEL 8

 

Docker Install

 

1. 레포 설정

RedHat의 레포가 없기 때문에 대안으로 패키지를 entOS 에서 가져와야 합니다. 다행히 CentOS용 Docker 패키지가 제공되기 때문에 레포 설정만으로 간단하게 설치를 진행할 수 있습니다. 레포 설정이 궁금하다면 LocalRepo을 참조하면 됩니다.

아래는 Docker에서 제공하는 CentOs 용 레포 주소입니다. https://download.docker.com/linux/centos/

해당 주소를 이용해서 “docker.repo”라는 repo 파일을 하나 생성합니다.

  • 레포 파일 생성
[root@localhost ~]# cat /etc/yum.repos.d/docker.repo
[docker]
name=docker
baseurl=https://download.docker.com/linux/centos/8/x86_64/stable/
gpgcheck=0
enabled=1
  • 설정된 레포 확인 yum repolist -v 명령으로 설정한 레포에서 패키지 파일을 정상적으로 검출하는지 테스트할 수 있습니다.
[root@localhost ~]# yum repolist -v
Loaded plugins: builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate_comple    tion_cache, groups-manager, needs-restarting, playground, product-id, repoclosure, repodiff, repograph, repoma    nage, reposync, subscription-manager, uploadprofile
Updating Subscription Management repositories.
Unable to read consumer identity

...

Repo-id            : docker
Repo-name          : docker
Repo-revision      : 1705314521
Repo-updated       : Mon 15 Jan 2024 07:28:41 PM KST
Repo-pkgs          : 191
Repo-available-pkgs: 191
Repo-size          : 3.5 G
Repo-baseurl       : <https://download.docker.com/linux/centos/8/x86_64/stable/>
Repo-expire        : 172,800 second(s) (last: Wed 17 Jan 2024 09:44:17 AM KST)
Repo-filename      : /etc/yum.repos.d/docker.repo
Total packages: 7,936

2. Docker 패키지 설치

Docker Engine, Containerd, Docker-compose의 최신 버전을 설치합니다. 버전을 지정하시고 싶으신 분들은 Docker Documentation을 참조하실 수 있습니다.

  • Docker Package Install

OS에서 제공하는 추가 패키지가 필요할 수 있습니다. 따라서 OS 이미지 Local Repo도 설정해야 문제없이 설치가 진행됩니다.

[root@localhost ~]# dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register    .

Last metadata expiration check: 0:00:44 ago on Wed 17 Jan 2024 09:44:18 AM KST.
Dependencies resolved.
==============================================================================================================
 Package                         Arch      Version                                         Repository    Size
==============================================================================================================
Installing:
 containerd.io                   x86_64    1.6.27-3.1.el8                                  docker        35 M
 docker-buildx-plugin            x86_64    0.11.2-1.el8                                    docker        13 M
 docker-ce                       x86_64    3:24.0.7-1.el8                                  docker        24 M
 docker-ce-cli                   x86_64    1:24.0.7-1.el8                                  docker       7.2 M
 docker-compose-plugin           x86_64    2.21.0-1.el8                                    docker        13 M
Installing dependencies:
 checkpolicy                     x86_64    2.9-1.el8                                       BaseOS       346 k
 container-selinux               noarch    2:2.158.0-1.module+el8.4.0+10607+f4da7515       AppStream     51 k
 fuse-common                     x86_64    3.2.1-12.el8                                    BaseOS        21 k
 fuse-overlayfs                  x86_64    1.4.0-2.module+el8.4.0+10607+f4da7515           AppStream     72 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+10607+f4da7515           AppStream     69 k
 policycoreutils-python-utils    noarch    2.9-14.el8                                      BaseOS       252 k
 python3-audit                   x86_64    3.0-0.17.20191104git1c2f876.el8                 BaseOS        86 k
 python3-libsemanage             x86_64    2.9-6.el8                                       BaseOS       127 k
 python3-policycoreutils         noarch    2.9-14.el8                                      BaseOS       2.2 M
 python3-setools                 x86_64    4.3.0-2.el8                                     BaseOS       626 k
 slirp4netns                     x86_64    1.1.8-1.module+el8.4.0+10607+f4da7515           AppStream     51 k
 tar                             x86_64    2:1.30-5.el8                                    BaseOS       838 k
Installing weak dependencies:
 docker-ce-rootless-extras       x86_64    24.0.7-1.el8                                    docker       4.9 M
Enabling module streams:
 container-tools                           rhel8

...

Complete!

 

 

3. Docker 데몬 실행 및 확인

  • Docker 버전 확인
[root@localhost ~]# docker --version
Docker version 24.0.7, build afdd53b
  • Docker 데몬 실행
[root@localhost ~]# systemctl start docker

[root@localhost ~]# systemctl enable docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.

[root@localhost ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2024-01-17 09:47:30 KST; 8s ago
     Docs: <https://docs.docker.com>
 Main PID: 15716 (dockerd)
    Tasks: 8
   Memory: 26.3M
   CGroup: /system.slice/docker.service
           └─15716 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Jan 17 09:47:29 localhost.localdomain systemd[1]: Starting Docker Application Container Engine...
Jan 17 09:47:29 localhost.localdomain dockerd[15716]: time="2024-01-17T09:47:29.572536918+09:00" level=info msg=">
Jan 17 09:47:29 localhost.localdomain dockerd[15716]: time="2024-01-17T09:47:29.594184251+09:00" level=info msg=">
Jan 17 09:47:30 localhost.localdomain dockerd[15716]: time="2024-01-17T09:47:30.627630982+09:00" level=info msg=">
Jan 17 09:47:30 localhost.localdomain dockerd[15716]: time="2024-01-17T09:47:30.802197604+09:00" level=info msg=">
Jan 17 09:47:30 localhost.localdomain dockerd[15716]: time="2024-01-17T09:47:30.819245592+09:00" level=info msg=">
Jan 17 09:47:30 localhost.localdomain dockerd[15716]: time="2024-01-17T09:47:30.819379019+09:00" level=info msg=">
Jan 17 09:47:30 localhost.localdomain dockerd[15716]: time="2024-01-17T09:47:30.847685290+09:00" level=info msg=">
Jan 17 09:47:30 localhost.localdomain systemd[1]: Started Docker Application Container Engine.

 

4. 컨테이너 기동 테스트

  • Apache 서비스 기동
[root@localhost ~]# docker run -d -p 8080:80 docker.io/library/httpd
Unable to find image 'httpd:latest' locally
latest: Pulling from library/httpd
2f44b7a888fa: Pull complete
5abb3599da34: Pull complete
4f4fb700ef54: Pull complete
fa608a886227: Pull complete
afe6bbf00437: Pull complete
fd0ef2a49677: Pull complete
Digest: sha256:7765977cf2063fec486b63ddea574faf8fbed285f2b17020fa7ef70a4926cdec
Status: Downloaded newer image for httpd:latest
056986a13b14a7b822d0b424a96fec9d1b82f60c462d89b5b514eb305d6cc9f1
  • 컨테이너 기동 확인
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE     COMMAND              CREATED         STATUS         PORTS                                   NAMES
056986a13b14   httpd     "httpd-foreground"   2 seconds ago   Up 2 seconds   0.0.0.0:8080->80/tcp, :::8080->80/tcp   nifty_pascal
  • 컨테이너 연결 테스트
[root@localhost ~]# curl localhost:8080
<html><body><h1>It works!</h1></body></html>

마치며

RHEL8 버전에서 Docker install 및  사용하는 방법에 대해서 확인했습니다. RedHat에서는 Docker와 사용 방법이 비슷한 제품인 Podman을 공식적으로 지원하고 있습니다.

 

참조

https://access.redhat.com/discussions/6249651

https://access.redhat.com/solutions/3696691

https://docs.docker.com/engine/install/centos/

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Scroll to Top