Skip to main content

Red Hat Enterprise Linux 9.7 离线部署docker 及 docker compose

下面给出在 Red Hat Enterprise Linux 9.7 上的完整操作流程,包括:

  1. 关闭 SELinux

  2. 离线安装 Docker

  3. 离线安装 Docker Compose

整个流程适合 完全离线环境(无法访问互联网)。


一、关闭 SELinux

1 临时关闭(立即生效)

setenforce 0

检查状态:

getenforce

如果返回:

Permissive

说明已临时关闭。


2 永久关闭

编辑配置文件:

vi /etc/selinux/config

修改:

SELINUX=disabled

原始可能是:

SELINUX=enforcing

保存后 重启系统

reboot

验证:

getenforce

输出应为:

Disabled

二、准备 Docker 离线安装包

需要从一台 可以联网的 Linux 机器 下载以下 RPM:

Docker 在 RHEL9 需要这些包:

docker-ce
docker-ce-cli
containerd.io
docker-buildx-plugin
docker-compose-plugin

官方下载地址:

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

说明:

虽然是 CentOS 路径,但 RHEL9 完全兼容


推荐下载版本(稳定)

例如:

containerd.io
docker-ce
docker-ce-cli
docker-buildx-plugin
docker-compose-plugin

下载示例:

wget https://download.docker.com/linux/centos/9/x86_64/stable/Packages/containerd.io-*.rpm
wget https://download.docker.com/linux/centos/9/x86_64/stable/Packages/docker-ce-*.rpm
wget https://download.docker.com/linux/centos/9/x86_64/stable/Packages/docker-ce-cli-*.rpm
wget https://download.docker.com/linux/centos/9/x86_64/stable/Packages/docker-buildx-plugin-*.rpm
wget https://download.docker.com/linux/centos/9/x86_64/stable/Packages/docker-compose-plugin-*.rpm

然后打包:

tar czvf docker-rhel9.tar.gz *.rpm

拷贝到离线服务器。


三、离线安装 Docker

进入 RPM 目录:

cd /root/docker-rpm

安装:

dnf install -y *.rpm

如果没有 dnf repo:

rpm -ivh *.rpm

推荐:

dnf install *.rpm

dnf 会自动处理依赖。


四、启动 Docker

安装完成后:

启动:

systemctl start docker

设置开机启动:

systemctl enable docker

查看状态:

systemctl status docker

五、验证 Docker

docker version

示例输出:

Client: Docker Engine
Server: Docker Engine

测试:

docker info

六、Docker Compose

RHEL9 推荐使用 docker compose plugin

验证:

docker compose version

如果正常:

Docker Compose version v2.x

使用方法:

docker compose up -d

注意:

RHEL9 不再推荐旧命令:

docker-compose

而是:

docker compose

七、常见离线依赖问题

RHEL9 可能缺少:

libcgroup
iptables
container-selinux

如果安装报错,需要额外下载:

container-selinux

下载地址:

https://rpmfind.net/linux/rpm2html/search.php?query=container-selinux

八、生产环境建议配置

编辑:

vi /etc/docker/daemon.json

推荐:

{
 "log-driver": "json-file",
 "log-opts": {
   "max-size": "100m",
   "max-file": "3"
 },
 "storage-driver": "overlay2"
}

重启:

systemctl restart docker

九、开放 Docker API(如果需要)

Docker 默认端口:

2375
2376

如果使用 firewalld

firewall-cmd --permanent --add-port=2375/tcp
firewall-cmd --reload

十、验证容器运行

导入测试镜像(离线):

docker load -i nginx.tar

运行:

docker run -d -p 80:80 nginx

查看:

docker ps

十一、运维经验(RHEL9 + Docker)

生产服务器建议:

1️⃣ 关闭 SELinux 或设为 permissive
2️⃣ 使用 overlay2 存储驱动
3️⃣ /var/lib/docker 单独磁盘
4️⃣ 开启日志轮转
5️⃣ 防火墙限制 docker API


💡 如果需要,我可以再给你一份 “RHEL9 Docker 完整离线安装包结构”(企业运维常用),特点:

  • 只需一个 tar 包

  • 解压后一条命令安装

  • 自动解决所有依赖

  • 支持 docker + compose + buildx

很多数据中心离线部署都是这种方式。