RedHat 8.6 Java/Docker 설치

HEUI SUNG LEE·2025년 9월 13일

RedHat 8.6 Java/Docker 설치

java install

Red Hat 8.6에 OpenJDK 21 오프라인 설치 상세 가이드
이 가이드는 인터넷에 연결되지 않은 오프라인 Red Hat Enterprise Linux (RHEL) 8.6 환경에서 OpenJDK21U-jdk_x64_linux_hotspot_21.0.8_9.tar.gz 파일을 사용하여 OpenJDK 21을 설치하는 과정을 상세하게 설명합니다.

1. 사전 준비
OpenJDK 아카이브 다운로드: 인터넷이 연결된 다른 컴퓨터에서 Adoptium (구 AdoptOpenJDK) 또는 Oracle의 웹사이트를 통해 OpenJDK21U-jdk_x64_linux_hotspot_21.0.8_9.tar.gz 파일을 다운로드합니다.

2. 파일 전송: 다운로드한 파일을 USB 드라이브, 외장 하드 드라이브 또는 내부 네트워크를 통해 오프라인 RHEL 8.6 서버의 특정 디렉토리(예: /tmp 또는 사용자의 홈 디렉토리)로 복사합니다.

curl -L -o OpenJDK21U-jdk_x64_linux_hotspot_21.0.8_9.tar.gz https://mirror.math.princeton.edu/pub/redcorelinux/amd64/distfiles/OpenJDK21U-jdk_x64_linux_hotspot_21.0.8_9.tar.gz

1단계: 압축 해제
먼저, 서버에 전송된 .tar.gz 파일의 압축을 풀어야 합니다. 일반적으로 Java와 같은 소프트웨어는 /opt 또는 /usr/local 디렉토리에 설치하는 것이 좋습니다.

설치 디렉토리 생성 (선택 사항): /opt 디렉토리 아래에 jdk를 관리할 폴더를 생성합니다.

sudo mkdir -p /opt/jdk

압축 해제: /tmp 디렉토리에 파일을 옮겼다고 가정하고, 아래 명령어를 사용하여 /opt/jdk 디렉토리에 압축을 해제합니다.

sudo tar -zxvf /tmp/OpenJDK21U-jdk_x64_linux_hotspot_21.0.8_9.tar.gz -C /opt/jdk
  • 압축이 풀리면 /opt/jdk 아래에 jdk-21.0.8+9 와 같은 디렉토리가 생성됩니다.

  • java openjdk21 압축풀기

[appuser@appdev java]$sudo tar -xvf OpenJDK21U-jdk_x64_linux_hotspot_21.0.8_9.tar.gz 
[appuser@appdev java]$ sudo tar -xvf OpenJDK21U-jdk_x64_linux_hotspot_21.0.8_9.tar.gz 
jdk-21.0.8+9/
jdk-21.0.8+9/include/
jdk-21.0.8+9/include/jni.h
jdk-21.0.8+9/include/jvmti.h
jdk-21.0.8+9/include/classfile_constants.h
jdk-21.0.8+9/include/linux/
jdk-21.0.8+9/include/linux/jni_md.h
jdk-21.0.8+9/include/linux/jawt_md.h
jdk-21.0.8+9/include/jvmticmlr.h
jdk-21.0.8+9/include/jawt.h
jdk-21.0.8+9/include/jdwpTransport.h
jdk-21.0.8+9/conf/
jdk-21.0.8+9/conf/net.properties
jdk-21.0.8+9/conf/logging.properties
jdk-21.0.8+9/conf/sound.properties
jdk-21.0.8+9/conf/sdp/
jdk-21.0.8+9/conf/sdp/sdp.conf.template
jdk-21.0.8+9/conf/management/

....

[appuser@appdev java]$ sudo tar -xvf OpenJDK21U-jdk_x64_linux_hotspot_21.0.8_9.tar.gz 
jdk-21.0.8+9/
jdk-21.0.8+9/include/
jdk-21.0.8+9/include/jni.h
jdk-21.0.8+9/include/jvmti.h
jdk-21.0.8+9/include/classfile_constants.h
jdk-21.0.8+9/include/linux/
jdk-21.0.8+9/include/linux/jni_md.h
jdk-21.0.8+9/include/linux/jawt_md.h
jdk-21.0.8+9/include/jvmticmlr.h
jdk-21.0.8+9/include/jawt.h
jdk-21.0.8+9/include/jdwpTransport.h
jdk-21.0.8+9/conf/
jdk-21.0.8+9/conf/net.properties
jdk-21.0.8+9/conf/logging.properties
jdk-21.0.8+9/conf/sound.properties
jdk-21.0.8+9/conf/sdp/
jdk-21.0.8+9/conf/sdp/sdp.conf.template
jdk-21.0.8+9/conf/management/

2단계: 환경 변수 설정
시스템의 모든 사용자가 Java를 사용할 수 있도록 전역 환경 변수를 설정합니다.

/etc/profile.d/ 디렉토리에 스크립트 파일 생성:

sudo vi /etc/profile.d/openjdk21.sh

환경 변수 내용 추가: vi 편집기에서 i를 눌러 입력 모드로 전환한 후, 다음 내용을 붙여넣습니다. 압축 해제 후 생성된 디렉토리 이름(jdk-21.0.8+9)을 정확하게 입력해야 합니다.

#!/bin/bash
export JAVA_HOME=/opt/jdk/jdk-21.0.8+9
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib

저장 및 종료: Esc 키를 누른 후 :wq를 입력하여 저장하고 편집기를 종료합니다.

스크립트에 실행 권한 부여:

sudo chmod +x /etc/profile.d/openjdk21.sh

환경 변수 즉시 적용: 시스템을 재부팅하거나 아래 명령어를 실행하여 현재 세션에 바로 적용할 수 있습니다.

source /etc/profile.d/openjdk21.sh

================================

3단계: alternatives 시스템에 등록
alternatives는 시스템에 여러 버전의 Java가 설치되어 있을 때 기본 버전을 쉽게 전환할 수 있도록 도와주는 도구입니다.

우분투 버전 등록
https://memories.tistory.com/59

java 등록:

sudo alternatives --install /usr/bin/java java /opt/jdk/jdk-21.0.8+9/bin/java 21

javac 등록:

sudo alternatives --install /usr/bin/javac javac /opt/jdk/jdk-21.0.8+9/bin/javac 21
  • --install 옵션은 (링크 위치) (이름) (실제 파일 위치) (우선순위) 순서로 지정합니다. 우선순위 번호(여기서는 21)가 높을수록 기본값으로 설정될 확률이 높습니다.

기본 Java 버전 설정: 만약 시스템에 다른 버전의 Java가 설치되어 있다면, 아래 명령어를 통해 기본 버전을 선택할 수 있습니다.

sudo alternatives --config java

명령어를 실행하면 설치된 Java 버전 목록이 나타납니다. OpenJDK 21에 해당하는 번호를 입력하고 Enter를 누릅니다. javac도 동일하게 설정할 수 있습니다.

=============================================

  1. 설치 확인
    모든 설정이 완료된 후, 터미널에서 다음 명령어를 실행하여 설치가 성공적으로 이루어졌는지 확인합니다.

Java 버전 확인:

java -version

openjdk version "21.0.8" 2025-07-15
OpenJDK Runtime Environment Temurin-21.0.8+9 (build 21.0.8+9)
OpenJDK 64-Bit Server VM Temurin-21.0.8+9 (build 21.0.8+9, mixed mode)

컴파일러 버전 확인:

javac -version
javac 21.0.8

환경 변수 확인:

echo $JAVA_HOME

예상 출력:

/opt/jdk/jdk-21.0.8+9

위와 같이 버전과 환경 변수가 올바르게 출력된다면, Red Hat 8.6 오프라인 환경에 OpenJDK 21 설치가 성공적으로 완료된 것입니다

  • 참고사항
Java JDK 21을 tar 형태로 설치할 때 권장되는 위치는 운영체제에 따라 다르지만, 리눅스나 macOS에서는 일반적으로 /opt/java, /usr/local/java와 같은 디렉토리에 설치하고, 경로를 ~/.bashrc 또는 ~/.zshrc에 JAVA_HOME 환경 변수를 설정하여 사용합니다. Windows에서는 .tar.gz 파일을 수동으로 압축 해제하여 C:\Program Files\Java 폴더 아래에 설치하는 것이 일반적입니다. 
리눅스/macOS에서 설치 시 권장 위치
디렉토리 생성: JDK 압축 파일을 풀 디렉토리를 생성합니다.
/opt/java 또는 /usr/local/java 와 같은 디렉토리에 설치합니다.
sudo mkdir -p /opt/java (예시)
압축 파일 해제: 다운로드한 jdk-21.tar.gz 파일을 해당 디렉토리로 이동시켜 압축을 해제합니다.
sudo tar -zxvf jdk-21.tar.gz -C /opt/java (예시)
경로 설정: JAVA_HOME 환경 변수를 설정하여 JDK의 경로를 지정합니다.
~/.bashrc 또는 ~/.zshrc 파일을 열어 다음 내용을 추가합니다.
export JAVA_HOME=/opt/java/jdk-21 (설치 경로에 맞게 수정)
export PATH=$JAVA_HOME/bin:$PATH
파일을 저장하고 source ~/.bashrc 또는 source ~/.zshrc 명령어로 적용합니다. 
Windows에서 설치 시 권장 위치
JDK 다운로드: Oracle 공식 홈페이지나 Microsoft Learn에서 운영체제에 맞는 jdk-21.tar.gz 파일을 다운로드합니다.
압축 파일 해제: 다운로드한 .tar.gz 파일을 원하는 위치에 압축 해제합니다.
일반적으로 C:\Program Files\Java 폴더 아래에 jdk-21과 같은 이름으로 압축을 풉니다.
JAVA_HOME 환경 변수 설정:
시스템 설정에서 "고급 시스템 설정 보기"를 선택합니다.
환경 변수 버튼을 클릭하여 JAVA_HOME 변수를 생성하고, 변수 값으로 설치된 JDK 경로를 입력합니다 (예: C:\Program Files\Java\jdk-21).
Path 환경 변수에도 %JAVA_HOME%\bin을 추가합니다. 
주의사항
tar.gz 파일은 리눅스/macOS에서 주로 사용되며, Windows 환경에서는 .zip 또는 .exe 설치 파일을 사용하는 것이 더 일반적입니다.
설치 후에는 JAVA_HOME 환경 변수를 올바르게 설정하여 IDE나 다른 개발 도구에서 JDK를 인식할 수 있도록 해야 합니다. 

docker offline install

t Enterprise Linux 8.6 오프라인 환경 Docker 설치 상세 가이드

Red Hat Enterprise Linux (RHEL) 8.6 환경에서는 기본적으로 Docker 대신 Podman을 컨테이너 엔진으로 사용합니다. 하지만 필요에 따라 Docker-CE (Community Edition)를 수동으로 설치할 수 있습니다. 인터넷이 차단된 오프라인 환경에 Docker를 설치하려면, 인터넷이 연결된 다른 머신에서 필요한 모든 RPM 패키지와 의존성 파일을 다운로드하여 대상 서버로 옮긴 후 설치를 진행해야 합니다.

이 가이드에서는 온라인 머신에서 필요 파일을 준비하는 과정부터 오프라인 RHEL 8.6 서버에 Docker를 성공적으로 설치하고 설정하는 단계까지 상세하게 안내합니다.

1단계: 온라인 머신에서 Docker 패키지 및 의존성 다운로드
먼저 인터넷에 연결된 동일한 아키텍처(x86_64)의 RHEL 8.6 또는 CentOS 8 환경의 머신이 필요합니다. 이 머신에서 Docker 설치에 필요한 모든 파일을 다운로드합니다.

  1. Docker 리포지토리 설정:

온라인 머신에 Docker CE의 공식 CentOS 리포지토리를 추가합니다. RHEL용 Docker 패키지는 CentOS 리포지토리를 통해 안정적으로 받을 수 있습니다.

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

페도라는 버전에 따라 docker  repo 명령 다름
 https://developer.fedoraproject.org/tools/docker/docker-installation.html
[16/17] Removing selinux-policy-0:41.34-1.fc42.noarch                                  100% |   1.0 KiB/s |  12.0   B |  00m00s
[17/17] Removing selinux-policy-targeted-0:41.34-1.fc42.noarch                         100% |  75.0   B/s |   1.7 KiB |  00m23s
제외 함 

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  1. 필요 패키지 및 모든 의존성 다운로드:

yumdownloader 유틸리티를 사용하여 Docker CE 관련 패키지와 그에 필요한 모든 의존성 패키지를 지정된 디렉토리(~/docker-offline-packages)에 다운로드합니다.

# 다운로드할 디렉토리 생성
mkdir ~/docker-offline-packages

# yumdownloader를 사용하여 Docker CE 최신 버전과 모든 의존성 패키지 다운로드
## sudo yumdownloader --resolve --destdir=~/docker-offline-packages docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

--resolve 옵션은 지정된 패키지뿐만 아니라 관련된 모든 의존성 패키지까지 함께 다운로드하는 중요한 역할을 합니다.

  1. 다운로드된 파일 압축:

다운로드한 모든 RPM 파일들을 하나의 압축 파일로 만듭니다. 이렇게 하면 오프라인 서버로 파일을 옮기기가 수월해집니다.

tar -czvf docker-offline-packages.tar.gz -C ~/docker-offline-packages .

이제 docker-offline-packages.tar.gz 파일이 생성되었습니다. 이 파일을 USB 드라이브나 SCP(Secure Copy) 등을 사용하여 오프라인 RHEL 8.6 서버로 복사합니다.

2단계: 오프라인 RHEL 8.6 서버에 Docker 설치
온라인 머신에서 준비한 압축 파일을 오프라인 서버의 원하는 위치(예: /tmp)로 옮긴 후 다음 단계를 진행합니다.

  1. 압축 해제:

서버로 옮긴 압축 파일을 풀어줍니다.

# 파일을 저장할 디렉토리 생성
mkdir /tmp/docker-install
# 압축 해제
tar -xzvf docker-offline-packages.tar.gz -C /tmp/docker-install
  1. 기존 컨테이너 런타임 충돌 방지 (필요시):

RHEL 8.6에는 기본적으로 Podman이 설치되어 있을 수 있으며, 일부 패키지가 Docker와 충돌을 일으킬 수 있습니다. podman과 buildah 패키지를 삭제하여 잠재적인 충돌을 방지하는 것이 좋습니다.

https://saakmiso.tistory.com/155

[appuser@appdev docker-rpms]$ sudo dnf remove docker \
>                   docker-client \
>                   docker-client-latest \
>                   docker-common \
>                   docker-latest \
>                   docker-latest-logrotate \
>                   docker-logrotate \
>                   docker-engine \
>                   podman \
>                   runc
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

No match for argument: docker
No match for argument: docker-client
No match for argument: docker-client-latest
No match for argument: docker-common
No match for argument: docker-latest
No match for argument: docker-latest-logrotate
No match for argument: docker-logrotate
No match for argument: docker-engine
Dependencies resolved.
=========================================================================================================================
 Package                    Architecture   Version                                              Repository          Size
=========================================================================================================================
Removing:
 podman                     x86_64         2:4.0.2-6.module+el8.6.0+14673+621cb8be              @AppStream          51 M
 runc                       x86_64         1:1.0.3-2.module+el8.6.0+14673+621cb8be              @AppStream          11 M
Removing dependent packages:
 buildah                    x86_64         1:1.24.2-4.module+el8.6.0+14673+621cb8be             @AppStream          30 M
 cockpit-podman             noarch         43-1.module+el8.6.0+14673+621cb8be                   @AppStream         493 k
Removing unused dependencies:
 conmon                     x86_64         2:2.1.0-1.module+el8.6.0+14673+621cb8be              @AppStream         172 k
 container-selinux          noarch         2:2.179.1-1.module+el8.6.0+14673+621cb8be            @AppStream          55 k
 containers-common          x86_64         2:1-27.module+el8.6.0+14673+621cb8be                 @AppStream         359 k
 criu                       x86_64         3.15-3.module+el8.6.0+14673+621cb8be                 @AppStream         1.4 M
 fuse-common                x86_64         3.3.0-15.el8                                         @anaconda          5.1 k
 fuse-overlayfs             x86_64         1.8.2-1.module+el8.6.0+14673+621cb8be                @AppStream         145 k
 fuse3                      x86_64         3.3.0-15.el8                                         @anaconda          100 k
 fuse3-libs                 x86_64         3.3.0-15.el8                                         @anaconda          274 k
 libnet                     x86_64         1.1.6-15.el8                                         @AppStream         166 k
 libslirp                   x86_64         4.4.0-1.module+el8.6.0+14673+621cb8be                @AppStream         134 k
 podman-catatonit           x86_64         2:4.0.2-6.module+el8.6.0+14673+621cb8be              @AppStream         764 k
 shadow-utils-subid         x86_64         2:4.6-16.el8                                         @anaconda          205 k
 slirp4netns                x86_64         1.1.8-2.module+el8.6.0+14673+621cb8be                @AppStream          98 k

Transaction Summary
=========================================================================================================================
Remove  17 Packages

Freed space: 96 M
Is this ok [y/N]: y
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                 1/1 
  Running scriptlet: buildah-1:1.24.2-4.module+el8.6.0+14673+621cb8be.x86_64                                         1/1 
  Erasing          : buildah-1:1.24.2-4.module+el8.6.0+14673+621cb8be.x86_64                                        1/17 
  Erasing          : cockpit-podman-43-1.module+el8.6.0+14673+621cb8be.noarch                                       2/17 
  Erasing          : podman-2:4.0.2-6.module+el8.6.0+14673+621cb8be.x86_64                                          3/17 
  Running scriptlet: podman-2:4.0.2-6.module+el8.6.0+14673+621cb8be.x86_64                                          3/17 
  Erasing          : containers-common-2:1-27.module+el8.6.0+14673+621cb8be.x86_64                                  4/17 
  Erasing          : container-selinux-2:2.179.1-1.module+el8.6.0+14673+621cb8be.noarch                             5/17 
  Running scriptlet: container-selinux-2:2.179.1-1.module+el8.6.0+14673+621cb8be.noarch                             5/17 
  Erasing          : podman-catatonit-2:4.0.2-6.module+el8.6.0+14673+621cb8be.x86_64                                6/17 
  Erasing          : fuse-overlayfs-1.8.2-1.module+el8.6.0+14673+621cb8be.x86_64                                    7/17 
  Erasing          : fuse3-3.3.0-15.el8.x86_64                                                                      8/17 
  Erasing          : slirp4netns-1.1.8-2.module+el8.6.0+14673+621cb8be.x86_64                                       9/17 
  Erasing          : runc-1:1.0.3-2.module+el8.6.0+14673+621cb8be.x86_64                                           10/17 
  Erasing          : fuse-common-3.3.0-15.el8.x86_64                                                               11/17 
  Erasing          : criu-3.15-3.module+el8.6.0+14673+621cb8be.x86_64                                              12/17 
  Erasing          : libnet-1.1.6-15.el8.x86_64                                                                    13/17 
  Running scriptlet: libnet-1.1.6-15.el8.x86_64                                                                    13/17 
  Erasing          : libslirp-4.4.0-1.module+el8.6.0+14673+621cb8be.x86_64                                         14/17 
  Erasing          : fuse3-libs-3.3.0-15.el8.x86_64                                                                15/17 
  Running scriptlet: fuse3-libs-3.3.0-15.el8.x86_64                                                                15/17 
  Erasing          : conmon-2:2.1.0-1.module+el8.6.0+14673+621cb8be.x86_64                                         16/17 
  Erasing          : shadow-utils-subid-2:4.6-16.el8.x86_64                                                        17/17 
  Running scriptlet: shadow-utils-subid-2:4.6-16.el8.x86_64                                                        17/17 
  Verifying        : buildah-1:1.24.2-4.module+el8.6.0+14673+621cb8be.x86_64                                        1/17 
  Verifying        : cockpit-podman-43-1.module+el8.6.0+14673+621cb8be.noarch                                       2/17 
  Verifying        : conmon-2:2.1.0-1.module+el8.6.0+14673+621cb8be.x86_64                                          3/17 
  Verifying        : container-selinux-2:2.179.1-1.module+el8.6.0+14673+621cb8be.noarch                             4/17 
  Verifying        : containers-common-2:1-27.module+el8.6.0+14673+621cb8be.x86_64                                  5/17 
  Verifying        : criu-3.15-3.module+el8.6.0+14673+621cb8be.x86_64                                               6/17 
  Verifying        : fuse-common-3.3.0-15.el8.x86_64                                                                7/17 
  Verifying        : fuse-overlayfs-1.8.2-1.module+el8.6.0+14673+621cb8be.x86_64                                    8/17 
  Verifying        : fuse3-3.3.0-15.el8.x86_64                                                                      9/17 
  Verifying        : fuse3-libs-3.3.0-15.el8.x86_64                                                                10/17 
  Verifying        : libnet-1.1.6-15.el8.x86_64                                                                    11/17 
  Verifying        : libslirp-4.4.0-1.module+el8.6.0+14673+621cb8be.x86_64                                         12/17 
  Verifying        : podman-2:4.0.2-6.module+el8.6.0+14673+621cb8be.x86_64                                         13/17 
  Verifying        : podman-catatonit-2:4.0.2-6.module+el8.6.0+14673+621cb8be.x86_64                               14/17 
  Verifying        : runc-1:1.0.3-2.module+el8.6.0+14673+621cb8be.x86_64                                           15/17 
  Verifying        : shadow-utils-subid-2:4.6-16.el8.x86_64                                                        16/17 
  Verifying        : slirp4netns-1.1.8-2.module+el8.6.0+14673+621cb8be.x86_64                                      17/17 
Installed products updated.

Removed:
  buildah-1:1.24.2-4.module+el8.6.0+14673+621cb8be.x86_64                                                                
  cockpit-podman-43-1.module+el8.6.0+14673+621cb8be.noarch                                                               
  conmon-2:2.1.0-1.module+el8.6.0+14673+621cb8be.x86_64                                                                  
  container-selinux-2:2.179.1-1.module+el8.6.0+14673+621cb8be.noarch                                                     
  containers-common-2:1-27.module+el8.6.0+14673+621cb8be.x86_64                                                          
  criu-3.15-3.module+el8.6.0+14673+621cb8be.x86_64                                                                       
  fuse-common-3.3.0-15.el8.x86_64                                                                                        
  fuse-overlayfs-1.8.2-1.module+el8.6.0+14673+621cb8be.x86_64                                                            
  fuse3-3.3.0-15.el8.x86_64                                                                                              
  fuse3-libs-3.3.0-15.el8.x86_64                                                                                         
  libnet-1.1.6-15.el8.x86_64                                                                                             
  libslirp-4.4.0-1.module+el8.6.0+14673+621cb8be.x86_64                                                                  
  podman-2:4.0.2-6.module+el8.6.0+14673+621cb8be.x86_64                                                                  
  podman-catatonit-2:4.0.2-6.module+el8.6.0+14673+621cb8be.x86_64                                                        
  runc-1:1.0.3-2.module+el8.6.0+14673+621cb8be.x86_64                                                                    
  shadow-utils-subid-2:4.6-16.el8.x86_64                                                                                 
  slirp4netns-1.1.8-2.module+el8.6.0+14673+621cb8be.x86_64                                                               

Complete!
[appuser@appdev docker-rpms]$ 
  1. 로컬 RPM 패키지로 Docker 설치:

압축을 해제한 디렉토리로 이동하여 yum 또는 dnf를 사용해 모든 RPM 파일을 한 번에 설치합니다. 로컬 파일을 설치하면 yum이 의존성을 자동으로 해결해줍니다.

## ker-rpms
cd /tmp/docker-install
sudo yum localinstall *.rpm -y

# 현재 디렉토리의 모든 RPM 파일을 의존성 검사와 함께 설치
sudo dnf install ./*.rpm --disablerepo='*'
  • localinstall 명령어가 없다면 sudo dnf install ./*.rpm -y 명령어를 사용해도 동일하게 작동합니다.

설치가 안되는 경우 아래와 같은 순서로 실행한다.

# 1
sudo yum localinstall -y fuse-common-3.3.0-15.el8.x86_64.rpm
sudo yum localinstall -y fuse3-3.3.0-19.el8.x86_64.rpm
sudo yum localinstall -y fuse-overlayfs-1.13-1.module+el8.10.0+23320+f7205097.x86_64.rpm
sudo yum localinstall -y fuse3-libs-3.3.0-19.el8.x86_64.rpm
sudo yum localinstall -y libcgroup-0.41-19.el8.x86_64.rpm
sudo yum localinstall -y libslirp-4.4.0-2.module+el8.10.0+23320+f7205097.x86_64.rpm
sudo yum localinstall -y slirp4netns-1.2.3-1.module+el8.10.0+23320+f7205097.x86_64.rpm
 
# 2
sudo yum localinstall -y container-selinux-2.229.0-2.module+el8.10.0+23320+f7205097.noarch.rpm
sudo yum localinstall -y containerd.io-1.7.27-3.1.el8.x86_64.rpm
 
# 3
sudo yum localinstall -y docker-buildx-plugin-0.27.0-1.el8.x86_64.rpm
sudo yum localinstall -y docker-ce-cli-28.4.0-1.el8.x86_64.rpm
sudo yum localinstall -y docker-compose-plugin-2.39.2-1.el8.x86_64.rpm

# 4
sudo yum localinstall -y docker-ce-28.4.0-1.el8.x86_64.rpm
sudo yum localinstall -y docker-ce-rootless-extras-28.4.0-1.el8.x86_64.rpm

트러블 슈팅

[appuser@appdev docker-rpms]$ sudo dnf install ./*.rpm --disablerepo='*'
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.


No repository match: *
Error: 
 Problem 1: conflicting requests
  - nothing provides fuse-common = 3.3.0 needed by fuse3-3.3.0-19.el8.x86_64
 Problem 2: package fuse-overlayfs-1.13-1.module+el8.10.0+23320+f7205097.x86_64 requires fuse3, but none of the providers can be installed
  - conflicting requests
  - nothing provides fuse-common = 3.3.0 needed by fuse3-3.3.0-19.el8.x86_64
 Problem 3: package docker-ce-rootless-extras-28.4.0-1.el8.x86_64 requires fuse-overlayfs >= 0.7, but none of the providers can be installed
  - package fuse-overlayfs-1.13-1.module+el8.10.0+23320+f7205097.x86_64 requires fuse3, but none of the providers can be installed
  - conflicting requests
  - nothing provides fuse-common = 3.3.0 needed by fuse3-3.3.0-19.el8.x86_64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
[appuser@appdev docker-rpms]$ 

---------------------------------

[appuser@appdev docker-rpms]$ sudo yum localinstall -y fuse3-3.3.0-19.el8.x86_64.rpm
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

Error: 
 Problem: conflicting requests
  - nothing provides libfuse3.so.3()(64bit) needed by fuse3-3.3.0-19.el8.x86_64
  - nothing provides libfuse3.so.3(FUSE_3.3)(64bit) needed by fuse3-3.3.0-19.el8.x86_64
  - nothing provides fuse-common = 3.3.0 needed by fuse3-3.3.0-19.el8.x86_64
  - nothing provides fuse3-libs = 3.3.0-19.el8 needed by fuse3-3.3.0-19.el8.x86_64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

----------------------------------------------
[appuser@appdev docker-rpms]$ sudo yum localinstall -y fuse-overlayfs-1.13-1.module+el8.10.0+23320+f7205097.x86_64.rpm
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

Error: 
 Problem: conflicting requests
  - nothing provides fuse3 needed by fuse-overlayfs-1.13-1.module+el8.10.0+23320+f7205097.x86_64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)


[appuser@appdev docker-rpms]$ sudo yum localinstall -y docker-ce-28.4.0-1.el8.x86_64.rpm
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

Error: 
 Problem: conflicting requests
  - nothing provides docker-ce-cli needed by docker-ce-3:28.4.0-1.el8.x86_64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

[appuser@appdev docker-rpms]$ sudo yum localinstall -y docker-ce-rootless-extras-28.4.0-1.el8.x86_64.rpm
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

Error: 
 Problem: conflicting requests
  - nothing provides docker-ce needed by docker-ce-rootless-extras-28.4.0-1.el8.x86_64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)



단계별 확인

[appuser@appdev docker-rpms]$ sudo yum localinstall -y fuse3-libs-3.3.0-19.el8.x86_64.rpm
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

Dependencies resolved.
=========================================================================================================================
 Package                     Architecture            Version                         Repository                     Size
=========================================================================================================================
Installing:
 fuse3-libs                  x86_64                  3.3.0-19.el8                    @commandline                   96 k

Transaction Summary
=========================================================================================================================
Install  1 Package

Total size: 96 k
Installed size: 274 k
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                 1/1 
  Installing       : fuse3-libs-3.3.0-19.el8.x86_64                                                                  1/1 
  Running scriptlet: fuse3-libs-3.3.0-19.el8.x86_64                                                                  1/1 
  Verifying        : fuse3-libs-3.3.0-19.el8.x86_64                                                                  1/1 
Installed products updated.

Installed:
  fuse3-libs-3.3.0-19.el8.x86_64                                                                                         

Complete!

=============================================

[appuser@appdev docker-rpms]$ sudo yum localinstall -y libcgroup-0.41-19.el8.x86_64.rpm
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

Dependencies resolved.
=========================================================================================================================
 Package                     Architecture             Version                       Repository                      Size
=========================================================================================================================
Installing:
 libcgroup                   x86_64                   0.41-19.el8                   @commandline                    70 k

Transaction Summary
=========================================================================================================================
Install  1 Package

Total size: 70 k
Installed size: 136 k
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                 1/1 
  Running scriptlet: libcgroup-0.41-19.el8.x86_64                                                                    1/1 
  Installing       : libcgroup-0.41-19.el8.x86_64                                                                    1/1 
  Running scriptlet: libcgroup-0.41-19.el8.x86_64                                                                    1/1 
  Verifying        : libcgroup-0.41-19.el8.x86_64                                                                    1/1 
Installed products updated.

Installed:
  libcgroup-0.41-19.el8.x86_64                                                                                           

Complete!

==================================================================
[appuser@appdev docker-rpms]$ sudo yum localinstall -y libslirp-4.4.0-2.module+el8.10.0+23320+f7205097.x86_64.rpm
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

Dependencies resolved.
=========================================================================================================================
 Package             Architecture      Version                                             Repository               Size
=========================================================================================================================
Installing:
 libslirp            x86_64            4.4.0-2.module+el8.10.0+23320+f7205097              @commandline             71 k

Transaction Summary
=========================================================================================================================
Install  1 Package

Total size: 71 k
Installed size: 134 k
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                 1/1 
  Installing       : libslirp-4.4.0-2.module+el8.10.0+23320+f7205097.x86_64                                          1/1 
  Running scriptlet: libslirp-4.4.0-2.module+el8.10.0+23320+f7205097.x86_64                                          1/1 
  Verifying        : libslirp-4.4.0-2.module+el8.10.0+23320+f7205097.x86_64                                          1/1 
Installed products updated.

Installed:
  libslirp-4.4.0-2.module+el8.10.0+23320+f7205097.x86_64                                                                 

Complete!

==================================================================
[appuser@appdev docker-rpms]$ sudo yum localinstall -y slirp4netns-1.2.3-1.module+el8.10.0+23320+f7205097.x86_64.rpm
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

Dependencies resolved.
=========================================================================================================================
 Package               Architecture     Version                                             Repository              Size
=========================================================================================================================
Installing:
 slirp4netns           x86_64           1.2.3-1.module+el8.10.0+23320+f7205097              @commandline            56 k

Transaction Summary
=========================================================================================================================
Install  1 Package

Total size: 56 k
Installed size: 107 k
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                 1/1 
  Installing       : slirp4netns-1.2.3-1.module+el8.10.0+23320+f7205097.x86_64                                       1/1 
  Running scriptlet: slirp4netns-1.2.3-1.module+el8.10.0+23320+f7205097.x86_64                                       1/1 
  Verifying        : slirp4netns-1.2.3-1.module+el8.10.0+23320+f7205097.x86_64                                       1/1 
Installed products updated.

Installed:
  slirp4netns-1.2.3-1.module+el8.10.0+23320+f7205097.x86_64                                                              

Complete!

====================================================================

[appuser@appdev docker-rpms]$ sudo yum localinstall -y container-selinux-2.229.0-2.module+el8.10.0+23320+f7205097.noarch.rpm
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

Dependencies resolved.
=========================================================================================================================
 Package                   Architecture   Version                                             Repository            Size
=========================================================================================================================
Installing:
 container-selinux         noarch         2:2.229.0-2.module+el8.10.0+23320+f7205097          @commandline          71 k

Transaction Summary
=========================================================================================================================
Install  1 Package

Total size: 71 k
Installed size: 67 k
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                 1/1 
  Running scriptlet: container-selinux-2:2.229.0-2.module+el8.10.0+23320+f7205097.noarch                             1/1 
  Installing       : container-selinux-2:2.229.0-2.module+el8.10.0+23320+f7205097.noarch                             1/1 
  Running scriptlet: container-selinux-2:2.229.0-2.module+el8.10.0+23320+f7205097.noarch                             1/1 
  Verifying        : container-selinux-2:2.229.0-2.module+el8.10.0+23320+f7205097.noarch                             1/1 
Installed products updated.

Installed:
  container-selinux-2:2.229.0-2.module+el8.10.0+23320+f7205097.noarch                                                    

Complete!

======================================================================

[appuser@appdev docker-rpms]$ sudo yum localinstall -y containerd.io-1.7.27-3.1.el8.x86_64.rpm
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

Dependencies resolved.
=========================================================================================================================
 Package                       Architecture           Version                         Repository                    Size
=========================================================================================================================
Installing:
 containerd.io                 x86_64                 1.7.27-3.1.el8                  @commandline                  47 M

Transaction Summary
=========================================================================================================================
Install  1 Package

Total size: 47 M
Installed size: 155 M
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                 1/1 
  Installing       : containerd.io-1.7.27-3.1.el8.x86_64                                                             1/1 
  Running scriptlet: containerd.io-1.7.27-3.1.el8.x86_64                                                             1/1 
  Verifying        : containerd.io-1.7.27-3.1.el8.x86_64                                                             1/1 
Installed products updated.

Installed:
  containerd.io-1.7.27-3.1.el8.x86_64                                                                                    

Complete!

=========================================================================

[appuser@appdev docker-rpms]$ sudo yum localinstall -y fuse-common-3.3.0-15.el8.x86_64.rpm
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

Dependencies resolved.
=========================================================================================================================
 Package                      Architecture            Version                        Repository                     Size
=========================================================================================================================
Installing:
 fuse-common                  x86_64                  3.3.0-15.el8                   @commandline                   22 k

Transaction Summary
=========================================================================================================================
Install  1 Package

Total size: 22 k
Installed size: 5.1 k
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                 1/1 
  Installing       : fuse-common-3.3.0-15.el8.x86_64                                                                 1/1 
  Running scriptlet: fuse-common-3.3.0-15.el8.x86_64                                                                 1/1 
  Verifying        : fuse-common-3.3.0-15.el8.x86_64                                                                 1/1 
Installed products updated.

Installed:
  fuse-common-3.3.0-15.el8.x86_64                                                                                        

Complete!

==========================================================================
[appuser@appdev docker-rpms]$ sudo yum localinstall -y fuse3-3.3.0-19.el8.x86_64.rpm
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

Dependencies resolved.
=========================================================================================================================
 Package                 Architecture             Version                           Repository                      Size
=========================================================================================================================
Installing:
 fuse3                   x86_64                   3.3.0-19.el8                      @commandline                    55 k

Transaction Summary
=========================================================================================================================
Install  1 Package

Total size: 55 k
Installed size: 100 k
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                 1/1 
  Installing       : fuse3-3.3.0-19.el8.x86_64                                                                       1/1 
  Running scriptlet: fuse3-3.3.0-19.el8.x86_64                                                                       1/1 
  Verifying        : fuse3-3.3.0-19.el8.x86_64                                                                       1/1 
Installed products updated.

Installed:
  fuse3-3.3.0-19.el8.x86_64                                                                                              

Complete!

============================================================================
[appuser@appdev docker-rpms]$ sudo yum localinstall -y fuse-overlayfs-1.13-1.module+el8.10.0+23320+f7205097.x86_64.rpm
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

Dependencies resolved.
=========================================================================================================================
 Package                  Architecture     Version                                          Repository              Size
=========================================================================================================================
Installing:
 fuse-overlayfs           x86_64           1.13-1.module+el8.10.0+23320+f7205097            @commandline            70 k

Transaction Summary
=========================================================================================================================
Install  1 Package

Total size: 70 k
Installed size: 128 k
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                 1/1 
  Installing       : fuse-overlayfs-1.13-1.module+el8.10.0+23320+f7205097.x86_64                                     1/1 
  Running scriptlet: fuse-overlayfs-1.13-1.module+el8.10.0+23320+f7205097.x86_64                                     1/1 
  Verifying        : fuse-overlayfs-1.13-1.module+el8.10.0+23320+f7205097.x86_64                                     1/1 
Installed products updated.

Installed:
  fuse-overlayfs-1.13-1.module+el8.10.0+23320+f7205097.x86_64                                                            

Complete!

=====================================================================

[appuser@appdev docker-rpms]$ sudo yum localinstall -y docker-compose-plugin-2.39.2-1.el8.x86_64.rpm
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

Dependencies resolved.
=========================================================================================================================
 Package                             Architecture         Version                       Repository                  Size
=========================================================================================================================
Installing:
 docker-compose-plugin               x86_64               2.39.2-1.el8                  @commandline                15 M

Transaction Summary
=========================================================================================================================
Install  1 Package

Total size: 15 M
Installed size: 73 M
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                 1/1 
  Installing       : docker-compose-plugin-2.39.2-1.el8.x86_64                                                       1/1 
  Running scriptlet: docker-compose-plugin-2.39.2-1.el8.x86_64                                                       1/1 
  Verifying        : docker-compose-plugin-2.39.2-1.el8.x86_64                                                       1/1 
Installed products updated.

Installed:
  docker-compose-plugin-2.39.2-1.el8.x86_64                                                                              

Complete!
==================================================================

[appuser@appdev docker-rpms]$ sudo yum localinstall -y docker-ce-cli-28.4.0-1.el8.x86_64.rpm
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

Dependencies resolved.
=========================================================================================================================
 Package                       Architecture           Version                         Repository                    Size
=========================================================================================================================
Installing:
 docker-ce-cli                 x86_64                 1:28.4.0-1.el8                  @commandline                 8.7 M

Transaction Summary
=========================================================================================================================
Install  1 Package

Total size: 8.7 M
Installed size: 35 M
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                 1/1 
  Installing       : docker-ce-cli-1:28.4.0-1.el8.x86_64                                                             1/1 
  Running scriptlet: docker-ce-cli-1:28.4.0-1.el8.x86_64                                                             1/1 
  Verifying        : docker-ce-cli-1:28.4.0-1.el8.x86_64                                                             1/1 
Installed products updated.

Installed:
  docker-ce-cli-1:28.4.0-1.el8.x86_64                                                                                    

Complete!

=============================================================

[appuser@appdev docker-rpms]$ sudo yum localinstall -y docker-buildx-plugin-0.27.0-1.el8.x86_64.rpm
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

Dependencies resolved.
=========================================================================================================================
 Package                             Architecture          Version                     Repository                   Size
=========================================================================================================================
Installing:
 docker-buildx-plugin                x86_64                0.27.0-1.el8                @commandline                 17 M

Transaction Summary
=========================================================================================================================
Install  1 Package

Total size: 17 M
Installed size: 75 M
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                 1/1 
  Installing       : docker-buildx-plugin-0.27.0-1.el8.x86_64                                                        1/1 
  Running scriptlet: docker-buildx-plugin-0.27.0-1.el8.x86_64                                                        1/1 
  Verifying        : docker-buildx-plugin-0.27.0-1.el8.x86_64                                                        1/1 
Installed products updated.

Installed:
  docker-buildx-plugin-0.27.0-1.el8.x86_64                                                                               

Complete!


==============================================================================

[appuser@appdev docker-rpms]$ sudo yum localinstall -y docker-ce-28.4.0-1.el8.x86_64.rpm
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

Dependencies resolved.
=========================================================================================================================
 Package                    Architecture            Version                          Repository                     Size
=========================================================================================================================
Installing:
 docker-ce                  x86_64                  3:28.4.0-1.el8                   @commandline                   21 M

Transaction Summary
=========================================================================================================================
Install  1 Package

Total size: 21 M
Installed size: 86 M
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                 1/1 
  Installing       : docker-ce-3:28.4.0-1.el8.x86_64                                                                 1/1 
  Running scriptlet: docker-ce-3:28.4.0-1.el8.x86_64                                                                 1/1 
  Verifying        : docker-ce-3:28.4.0-1.el8.x86_64                                                                 1/1 
Installed products updated.

Installed:
  docker-ce-3:28.4.0-1.el8.x86_64                                                                                        

Complete!

===========================================================================

[appuser@appdev docker-rpms]$ sudo yum localinstall -y docker-ce-rootless-extras-28.4.0-1.el8.x86_64.rpm
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

Dependencies resolved.
=========================================================================================================================
 Package                                Architecture        Version                      Repository                 Size
=========================================================================================================================
Installing:
 docker-ce-rootless-extras              x86_64              28.4.0-1.el8                 @commandline              3.4 M

Transaction Summary
=========================================================================================================================
Install  1 Package

Total size: 3.4 M
Installed size: 11 M
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                 1/1 
  Installing       : docker-ce-rootless-extras-28.4.0-1.el8.x86_64                                                   1/1 
  Running scriptlet: docker-ce-rootless-extras-28.4.0-1.el8.x86_64                                                   1/1 
  Verifying        : docker-ce-rootless-extras-28.4.0-1.el8.x86_64                                                   1/1 
Installed products updated.

Installed:
  docker-ce-rootless-extras-28.4.0-1.el8.x86_64                                                                          

Complete!
  
  1. Docker 서비스 시작 및 활성화:

설치가 완료되면 Docker 데몬을 시작하고, 시스템 부팅 시 자동으로 실행되도록 설정합니다.

# Docker 서비스 시작
sudo systemctl start docker

# 시스템 부팅 시 자동 실행 설정
sudo systemctl enable docker

3단계: 설치 확인 및 사용자 설정
마지막으로 Docker가 정상적으로 설치되고 실행되는지 확인합니다.

  1. Docker 버전 및 상태 확인:

다음 명령어를 통해 Docker 엔진의 버전과 서비스의 활성화 상태를 확인할 수 있습니다.

# Docker 버전 확인
docker --version


[appuser@appdev docker-rpms]$ sudo docker version
Client: Docker Engine - Community
 Version:           28.4.0
 API version:       1.51
 Go version:        go1.24.7
 Git commit:        d8eb465
 Built:             Wed Sep  3 20:59:27 2025
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          28.4.0
  API version:      1.51 (minimum version 1.24)
  Go version:       go1.24.7
  Git commit:       249d679
  Built:            Wed Sep  3 20:56:49 2025
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.7.27
  GitCommit:        05044ec0a9a75232cad458027ca83437aae3f4da
 runc:
  Version:          1.2.5
  GitCommit:        v1.2.5-0-g59923ef
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0


# Docker 서비스 상태 확인
sudo systemctl status docker

[appuser@appdev docker-rpms]$ sudo 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 Sun 2025-09-14 01:34:38 EDT; 1min 45s ago
     Docs: https://docs.docker.com
 Main PID: 3663 (dockerd)
    Tasks: 10
   Memory: 41.8M
   CGroup: /system.slice/docker.service
           └─3663 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Sep 14 01:34:36 appdev.devops.kr dockerd[3663]: time="2025-09-14T01:34:36.833570844-04:00" level=info msg="Creating a co>
Sep 14 01:34:36 appdev.devops.kr dockerd[3663]: time="2025-09-14T01:34:36.872567139-04:00" level=info msg="Loading conta>
Sep 14 01:34:36 appdev.devops.kr dockerd[3663]: time="2025-09-14T01:34:36.887665260-04:00" level=info msg="Firewalld: cr>
Sep 14 01:34:38 appdev.devops.kr dockerd[3663]: time="2025-09-14T01:34:38.062699088-04:00" level=info msg="Loading conta>
Sep 14 01:34:38 appdev.devops.kr dockerd[3663]: time="2025-09-14T01:34:38.084648366-04:00" level=info msg="Docker daemon>
Sep 14 01:34:38 appdev.devops.kr dockerd[3663]: time="2025-09-14T01:34:38.084728025-04:00" level=info msg="Initializing >
Sep 14 01:34:38 appdev.devops.kr dockerd[3663]: time="2025-09-14T01:34:38.123874963-04:00" level=info msg="Completed bui>
Sep 14 01:34:38 appdev.devops.kr dockerd[3663]: time="2025-09-14T01:34:38.130820727-04:00" level=info msg="Daemon has co>
Sep 14 01:34:38 appdev.devops.kr dockerd[3663]: time="2025-09-14T01:34:38.130879848-04:00" level=info msg="API listen on>
Sep 14 01:34:38 appdev.devops.kr systemd[1]: Started Docker Application Container Engine.

Active: active (running) 메시지가 표시되면 정상적으로 실행 중인 것입니다.

  1. 'hello-world' 이미지로 테스트 실행:

오프라인 환경이므로 Docker Hub에서 이미지를 받아올 수 없습니다. 하지만 설치가 제대로 되었는지 확인하기 위해 docker run 명령어를 실행해 볼 수 있습니다. (오프라인이므로 이미지가 없다는 오류가 뜨는 것이 정상입니다.)

docker run hello-world

위 명령 실행 시 "Unable to find image 'hello-world:latest' locally" 와 같은 메시지가 출력되면 Docker 클라이언트가 데몬과 정상적으로 통신하고 있다는 의미이므로 설치는 성공한 것입니다.

  1. 일반 사용자를 docker 그룹에 추가 (권장):

매번 sudo를 입력하지 않고 docker 명령어를 사용하려면 현재 사용자를 docker 그룹에 추가해야 합니다.

# 현재 사용자를 docker 그룹에 추가
sudo usermod -aG docker $USER

# 변경 사항을 적용하기 위해 재로그인하거나 다음 명령 실행
newgrp docker

[appuser@appdev docker-rpms]$ docker version
Client: Docker Engine - Community
 Version:           28.4.0
 API version:       1.51
 Go version:        go1.24.7
 Git commit:        d8eb465
 Built:             Wed Sep  3 20:59:27 2025
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          28.4.0
  API version:      1.51 (minimum version 1.24)
  Go version:       go1.24.7
  Git commit:       249d679
  Built:            Wed Sep  3 20:56:49 2025
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.7.27
  GitCommit:        05044ec0a9a75232cad458027ca83437aae3f4da
 runc:
  Version:          1.2.5
  GitCommit:        v1.2.5-0-g59923ef
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

이제 sudo 없이 docker ps, docker images 등의 명령어를 사용할 수 있습니다.

이것으로 오프라인 RHEL 8.6 환경에 Docker 설치가 완료되었습니다. 필요한 Docker 이미지는 온라인 환경에서 docker save 명령어로 tar 파일로 추출한 뒤, 오프라인 서버에서 docker load 명령어로 로드하여 사용해야 합니다.

docker-compose offline install

Docker Compose (Standalone) 다운로드

Docker Compose는 RPM 패키지가 아닌 단일 바이너리 파일로 제공됩니다. GitHub 릴리즈 페이지에서 직접 다운로드합니다.

# 최신 버전을 확인하고 다운로드 (예: v2.27.0)
# 아래 URL에서 버전을 최신으로 변경할 수 있습니다.
# https://github.com/docker/compose/releases
curl -SL https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-linux-x86_64 -o docker-compose

Docker Compose 바이너리 설치
다운로드한 docker-compose 파일을 실행 가능한 경로로 옮기고 실행 권한을 부여합니다.

# 바이너리를 /usr/local/bin 으로 이동
sudo mv docker-compose /usr/local/bin/docker-compose

# 실행 권한 부여
sudo chmod +x /usr/local/bin/docker-compose

모든 설치가 완료된 후, 각 프로그램의 버전을 확인하여 성공적으로 설치되었는지 검증합니다.

# Docker Compose 버전 확인
docker-compose --version
# 출력 예시: Docker Compose version v2.27.0

[appuser@appdev docker-mendix-build_v6.0.1]$ docker-compose --version
Docker Compose version v2.39.2

docker image save

[mendix@laas-server images]$ sudo docker save -o mendix-rootfs_app.tar  mendix-rootfs:app
[mendix@laas-server images]$ sudo docker save -o mendix-rootfs_builder.tar  mendix-rootfs:builder
[mendix@laas-server images]$ ls
mendix-rootfs_app.tar  mendix-rootfs_builder.tar

docker image load

[appuser@appdev images]$ sudo docker load -i mendix-rootfs_app.tar 
778d8c610941: Loading layer [==================================================>]  106.1MB/106.1MB
0f6bdd780eb0: Loading layer [==================================================>]  809.5MB/809.5MB
e14ec1f51e20: Loading layer [==================================================>]  14.85kB/14.85kB
493d99856f7c: Loading layer [==================================================>]  3.584kB/3.584kB
4df3cf17fdfa: Loading layer [==================================================>]   7.68kB/7.68kB
efa9529056b0: Loading layer [==================================================>]  3.584kB/3.584kB
b3659b3f0ca6: Loading layer [==================================================>]  4.096kB/4.096kB
c13631581cd1: Loading layer [==================================================>]  3.072kB/3.072kB
Loaded image: mendix-rootfs:app
[appuser@appdev images]$ sudo docker load -i mendix-rootfs_builder.tar 
4ab5712dd09b: Loading layer [==================================================>]  812.2MB/812.2MB
a3c3a97ff083: Loading layer [==================================================>]  14.85kB/14.85kB
f3b729852842: Loading layer [==================================================>]  3.584kB/3.584kB
72065a224e70: Loading layer [==================================================>]  13.66MB/13.66MB
7633daf029da: Loading layer [==================================================>]  6.144kB/6.144kB
035cb20a9059: Loading layer [==================================================>]  130.7MB/130.7MB
Loaded image: mendix-rootfs:builder
[appuser@appdev images]$ 

https://www.leafcats.com/240

profile
Platform Engineer(MSA,DevOps,CA)/Data Engineer

0개의 댓글