在 CentOS 8 上安装 Docker
尽管 CentOS 8 官方仓库已不再更新,但我们仍然可以通过配置 Docker 官方仓库来完成安装,以下是在一个已停止更新的 CentOS 8 系统上安装 Docker Engine 的典型步骤。
为了确保安装过程的顺利,建议卸载系统中可能存在的旧版本 Docker。
sudo dnf remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
安装 dnf-plugins-core
包,它提供了管理 DNF 仓库所需的命令。
sudo dnf install -y dnf-plugins-core
添加 Docker 官方的稳定版仓库。
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
由于 CentOS 8 的源已失效,直接安装可能会遇到依赖问题,一个可行的解决方案是修改仓库配置,指向 vault.centos.org,但更推荐的做法是迁移到其下游发行版,如 AlmaLinux 或 Rocky Linux,假设您已解决源的问题,接下来便可安装 Docker Engine。
sudo dnf install docker-ce docker-ce-cli containerd.io
安装完成后,启动 Docker 服务并设置其开机自启。
sudo systemctl start docker sudo systemctl enable docker
通过运行 hello-world
镜像来验证 Docker 是否安装成功。
sudo docker run hello-world
如果看到欢迎信息,则说明 Docker 已在您的 CentOS 8 系统上正确安装并运行。
Docker 基础管理操作
安装只是第一步,熟练掌握 Docker 的日常管理命令才是高效使用的关键。
服务管理
Docker 的服务可以通过 systemctl
命令轻松控制,这与管理其他系统服务的方式完全一致。
sudo systemctl status docker
:查看 Docker 服务运行状态。sudo systemctl stop docker
:停止 Docker 服务。sudo systemctl restart docker
:重启 Docker 服务。
镜像与容器管理
镜像是容器的基础,而容器是镜像的运行实例,以下是一些核心的管理命令,可以通过表格形式更清晰地展示。
常用 Docker 镜像命令
命令 | 功能描述 |
---|---|
docker pull [镜像名] | 从 Docker Hub 拉取指定的镜像 |
docker images | 列出本地所有已下载的镜像 |
docker rmi [镜像ID/名] | 删除一个或多个本地镜像 |
docker search [关键词] | 在 Docker Hub 中搜索镜像 |
常用 Docker 容器命令
命令 | 功能描述 |
---|---|
docker run [选项] [镜像名] [命令] | 创建并启动一个新的容器 |
docker ps | 列出当前正在运行的容器(加 -a 显示所有) |
docker stop [容器ID/名] | 停止一个或多个正在运行的容器 |
docker rm [容器ID/名] | 删除一个或多个已停止的容器 |
重要考量:CentOS 8 的现状与替代方案
如前所述,CentOS 8 的生命周期结束是使用时最大的障碍,官方源不可用会导致 dnf
命令失败,除了手动修改配置指向 vault.centos.org
这一临时方案外,更长远和稳定的选择包括:
- 迁移到兼容发行版:将系统升级到 AlmaLinux 8 或 Rocky Linux 8,这两个发行版与 CentOS 8 100% 兼容,并提供了长期的支持,可以无缝接替 CentOS 8 的工作。
- 使用 Podman:Podman 是 RHEL 8 及其衍生版(包括 CentOS 8)中默认的容器管理工具,它与 Docker 的命令行接口高度兼容,但采用无守护进程的架构,安全性更高,且无需 root 权限即可运行容器,对于新项目,Podman 是一个非常值得考虑的现代化替代品。
相关问答FAQs
Q1: 为什么我在 CentOS 8 上执行 dnf install
命令时会报告仓库连接失败的错误?
A1: 这是因为 CentOS 8 已于 2021 年 12 月 31 日正式停止维护(End-of-Life, EOL),其官方软件仓库已被移除或归档,系统默认的 dnf
配置仍然指向已失效的 URL,要解决这个问题,您需要修改 /etc/yum.repos.d/
目录下的 .repo
文件,将其中的 mirrorlist
注释掉,并启用 baseurl
,将其指向 vault.centos.org
,但这只是一个临时方案,更推荐的做法是迁移到仍在积极维护的兼容系统,如 AlmaLinux 或 Rocky Linux。
Q2: 在 CentOS 8/RHEL 8 系统上,Docker 和 Podman 有什么主要区别?我应该选择哪一个?
A2: 主要区别在于架构和安全性,Docker 采用客户端/服务器架构,依赖一个持续运行的 root 权限守护进程,而 Podman 是无守护进程的,它直接与容器运行时(如 containerd)交互,每个容器都可以作为一个独立的进程运行,这使得 Podman 在安全性上更有优势,特别是它原生支持在非 root 用户下运行容器,在命令行上,Podman 与 Docker 高度兼容,许多 Docker 命令可以直接在 Podman 中使用,如果您在 CentOS 8 或 RHEL 8 上开启新项目,或者对安全性有更高要求,Podman 是官方推荐且更现代的选择,如果您有大量基于 Docker 的工作流和脚本,Docker 仍然是一个成熟且强大的工具。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复