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
기본 Java 버전 설정: 만약 시스템에 다른 버전의 Java가 설치되어 있다면, 아래 명령어를 통해 기본 버전을 선택할 수 있습니다.
sudo alternatives --config java
명령어를 실행하면 설치된 Java 버전 목록이 나타납니다. OpenJDK 21에 해당하는 번호를 입력하고 Enter를 누릅니다. javac도 동일하게 설정할 수 있습니다.
=============================================
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를 인식할 수 있도록 해야 합니다.
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 설치에 필요한 모든 파일을 다운로드합니다.
온라인 머신에 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
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 옵션은 지정된 패키지뿐만 아니라 관련된 모든 의존성 패키지까지 함께 다운로드하는 중요한 역할을 합니다.
다운로드한 모든 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)로 옮긴 후 다음 단계를 진행합니다.
서버로 옮긴 압축 파일을 풀어줍니다.
# 파일을 저장할 디렉토리 생성
mkdir /tmp/docker-install
# 압축 해제
tar -xzvf docker-offline-packages.tar.gz -C /tmp/docker-install
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]$
압축을 해제한 디렉토리로 이동하여 yum 또는 dnf를 사용해 모든 RPM 파일을 한 번에 설치합니다. 로컬 파일을 설치하면 yum이 의존성을 자동으로 해결해줍니다.
## ker-rpms
cd /tmp/docker-install
sudo yum localinstall *.rpm -y
# 현재 디렉토리의 모든 RPM 파일을 의존성 검사와 함께 설치
sudo dnf install ./*.rpm --disablerepo='*'
설치가 안되는 경우 아래와 같은 순서로 실행한다.
# 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!
설치가 완료되면 Docker 데몬을 시작하고, 시스템 부팅 시 자동으로 실행되도록 설정합니다.
# Docker 서비스 시작
sudo systemctl start docker
# 시스템 부팅 시 자동 실행 설정
sudo systemctl enable docker
3단계: 설치 확인 및 사용자 설정
마지막으로 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) 메시지가 표시되면 정상적으로 실행 중인 것입니다.
오프라인 환경이므로 Docker Hub에서 이미지를 받아올 수 없습니다. 하지만 설치가 제대로 되었는지 확인하기 위해 docker run 명령어를 실행해 볼 수 있습니다. (오프라인이므로 이미지가 없다는 오류가 뜨는 것이 정상입니다.)
docker run hello-world
위 명령 실행 시 "Unable to find image 'hello-world:latest' locally" 와 같은 메시지가 출력되면 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 (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]$