CentOS Docker 安装
CentOS / RHEL 系用 yum 仓库安装 Docker,以及防火墙与 SELinux 的处理。
Key PointsCentOS 用 yum-config-manager 添加 docker-ce 仓库;装完记得开 firewalld 端口、处理 SELinux 的挂载标签。
卸载旧版本
Bash
sudo yum remove -y docker docker-client docker-common docker-engine podman runc添加仓库并安装
Bash
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker国内网络
Access to download.docker.com is often slow from mainland China; switch to a mirror repo first.
Bash
sudo yum-config-manager --add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoSELinux 与挂载
With SELinux enforcing, containers cannot read host directories by default. Add :z (shared) or :Z (private) to relabel the mount — far safer than disabling SELinux.
Bash
docker run -d -v /data/html:/usr/share/nginx/html:z -p 80:80 nginx防火墙
Bash
# Docker 会自己写 iptables,firewalld 要放行对外端口
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reloadOn CentOS 8+ Docker and podman conflict (podman ships a
docker shim). Keep one container engine per host.卸载旧版本
Bash
sudo yum remove -y docker docker-client docker-common docker-engine podman runc添加仓库并安装
Bash
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker国内网络
CentOS 上常遇到 download.docker.com 访问慢,可以先换阿里云镜像源再装。
Bash
sudo yum-config-manager --add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoSELinux 与挂载
SELinux 开启时,容器默认读不到宿主目录。挂载时加 :z(多容器共享)或 :Z(独占)重新打标签,比直接关 SELinux 安全得多。
Bash
docker run -d -v /data/html:/usr/share/nginx/html:z -p 80:80 nginx防火墙
Bash
# Docker 会自己写 iptables,firewalld 要放行对外端口
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reloadCentOS 8+ 上 Docker 与 podman 共存容易冲突(都提供
docker 命令的替代)。同一台机器只留一个容器引擎。