如何在 CentOS 上安装 Docker:完整分步指南
Docker 从根本上改变了开发人员构建、交付和运行应用程序的方式。通过将软件打包到轻量级、可移植的容器中,Docker 消除了经典的”在我的机器上可以运行”问题,并大大简化了开发工作流和生产部署。如果您正在运行 CentOS 并想利用容器化的力量,本综合指南将引导您完成每一步 — 从全新系统更新到高级配置。
无论您是部署单个 Web 应用程序还是编排复杂的多容器环境,在 CentOS 上正确安装 Docker 是关键的第一步。
前置条件
在开始之前,请确保您拥有:
- CentOS 7 或 CentOS 8 服务器(物理或虚拟)
- 具有
sudo权限的用户账户 - 稳定的互联网连接
- 对 Linux 命令行的基本了解
> 专业提示:为了获得最佳的 Docker 体验,请考虑在 VPS Hosting 计划上运行它。虚拟专用服务器为您提供完整的 root 访问权限、专用资源和在没有共享环境限制的情况下运行容器的灵活性。
第1步:更新系统
在安装任何新软件之前,始终更新现有软件包以确保兼容性和安全性。运行以下命令:
sudo yum update -y此命令将所有已安装的软件包刷新到最新版本。根据待处理更新的数量,可能需要几分钟。完全更新的系统可降低Docker安装期间依赖项冲突的风险。
步骤 2:安装所需的依赖项
Docker 依赖于多个系统级软件包才能正常运行。使用单个命令安装它们:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2以下是每个软件包的作用:
| 软件包 | 用途 |
|---|---|
yum-utils | 提供 yum-config-manager 实用程序用于管理存储库 |
device-mapper-persistent-data | Docker 设备映射器存储驱动程序所需 |
lvm2 | Docker 存储后端的逻辑卷管理器支持 |
这些依赖项确保 Docker 可以在您的 CentOS 系统上高效可靠地管理容器存储。
第 3 步:添加官方 Docker 存储库
CentOS 的默认软件包存储库不包含最新的 Docker 软件包。您需要添加 Docker 的官方存储库以获取最新的稳定版本:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo此命令将 Docker 的官方 CentOS 存储库添加到您系统的存储库列表中。使用官方源可确保您直接从 Docker Inc. 获得真正的、最新的 Docker 软件包,而不是来自第三方镜像的可能过时的版本。
您可以通过列出已配置的存储库来验证存储库是否已成功添加:
sudo yum repolist第 4 步:安装 Docker Engine
配置好存储库后,安装 Docker 非常简单:
sudo yum install -y docker-ce docker-ce-cli containerd.io> 注意:建议同时安装 docker-ce-cli(Docker 命令行界面)和 containerd.io(容器运行时),以及主引擎,以获得完整的生产就绪设置。
这将安装 Docker Community Edition (CE) — Docker 的免费开源版本,非常适合开发和生产工作负载。
第 5 步:启动并启用 Docker 服务
安装 Docker 不会自动启动它。您需要启动 Docker 守护程序并将其配置为在系统启动时自动启动:
sudo systemctl start docker
sudo systemctl enable dockersystemctl start docker— 立即启动 Docker 服务systemctl enable docker— 配置 Docker 在每次服务器重启时自动启动
验证服务状态
确认 Docker 正在正确运行:
sudo systemctl status docker您应该看到输出显示服务为 active (running)。如果状态显示任何错误,请使用 journalctl -u docker 查看系统日志以获取故障排除详情。
第 6 步:验证 Docker 安装
运行 Docker 的内置测试以确认一切按预期工作:
sudo docker run hello-world此命令执行以下操作:
- 联系 Docker Hub 注册表
- 下载轻量级
hello-world测试镜像 - 从该镜像创建新容器
- 运行容器,打印确认消息
如果安装成功,您将看到以下开头的输出:
Hello from Docker!
This message shows that your installation appears to be working correctly.恭喜 — Docker 现已在您的 CentOS 服务器上完全安装并可正常运行。
第 7 步:为非 Root 用户配置 Docker(可选但推荐)
默认情况下,Docker 命令需要 sudo(root 权限)。为了在开发环境中提高安全性和便利性,您可以通过将特定的非 root 用户添加到 docker 组来允许他们运行 Docker 命令。
创建 Docker 组
在大多数情况下,此组在安装期间会自动创建。如果没有,请手动创建:
sudo groupadd docker将您的用户添加到 Docker 组
将 your_username 替换为实际的 Linux 用户名:
sudo usermod -aG docker your_username应用更改
注销并重新登录以刷新您的组成员身份。或者,在当前会话中激活更改:
newgrp docker在不使用 Sudo 的情况下测试
docker run hello-world如果此命令运行时不需要 sudo 且没有权限错误,则配置工作正常。
> 安全警告:docker 组授予的权限等同于 root 用户。在生产环境中,仅将受信任的用户添加到此组。
第 8 步:Essential Docker Commands Reference
Once Docker is running, here are the most important commands you'll use on a daily basis:
Container Management
# List all running containers
docker ps
# List all containers (including stopped ones)
docker ps -a
# Start a stopped container
docker start container_id
# Stop a running container
docker stop container_id
# Remove a container
docker rm container_id
# Remove all stopped containers at once
docker container pruneImage Management
# List all locally stored images
docker images
# Pull an image from Docker Hub
docker pull image_name
# Pull a specific version/tag
docker pull image_name:tag
# Remove a local image
docker rmi image_name
# Remove all unused images
docker image prune -aRunning Containers
# Run a container interactively
docker run -it image_name /bin/bash
# Run a container in detached (background) mode
docker run -d image_name
# Run a container with port mapping
docker run -d -p 8080:80 image_name
# Run a container with a custom name
docker run -d --name my_container image_nameViewing Logs and Stats
# View container logs
docker logs container_id
# Follow live log output
docker logs -f container_id
# View real-time resource usage
docker stats第 9 步:确认 Docker 在启动时启动
运行 systemctl enable docker 后,Docker 应该已配置为在启动时启动。要双重检查或重新启用此行为:
sudo systemctl enable docker要禁用自动启动(例如,在开发机器上,您不总是需要 Docker 运行):
sudo systemctl disable docker第 10 步:高级配置(可选)
安装 Docker Compose
Docker Compose 是一个用于使用简单 YAML 配置文件定义和管理多容器应用程序的必要工具。安装最新稳定版本:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose验证安装:
docker-compose --version使用 Docker Compose,您可以在单个 docker-compose.yml 文件中定义整个应用程序堆栈 — Web 服务器、数据库、缓存 — 并使用一个命令启动它们:docker-compose up -d。
配置 Docker 守护程序
您可以通过编辑(或创建)守护程序配置文件来自定义 Docker 的行为:
sudo nano /etc/docker/daemon.json常见配置示例:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"storage-driver": "overlay2",
"default-address-pools": [
{"base": "172.17.0.0/16", "size": 24}
]
}编辑守护程序配置后,重新启动 Docker 以应用更改:
sudo systemctl restart docker您可以配置的常见守护程序设置包括:
- 日志驱动程序和轮换 — 防止容器日志占用所有磁盘空间
- 存储驱动程序 —
overlay2是 CentOS 的推荐驱动程序 - DNS 设置 — 为容器设置自定义 DNS 服务器
- 注册表镜像 — 使用本地镜像加快镜像拉取速度
配置防火墙规则(CentOS 7)
如果您正在运行 firewalld,您可能需要允许 Docker 的网络流量:
sudo firewall-cmd --zone=public --add-masquerade --permanent
sudo firewall-cmd --reload为 Docker 选择合适的托管环境
在生产环境中运行 Docker 需要可靠、高性能的服务器环境。以下是根据您的使用情况选择的最佳选项:
- VPS 托管 — 适合大多数 Docker 部署。完全的 root 访问权限、可扩展的资源和经济的价格使 VPS 成为容器化应用程序的首选。
- 独立服务器 — 最适合高流量生产环境,或当您需要最大的 CPU、RAM 和存储性能来同时运行数十个容器时。
- GPU 托管 — 完美适用于在 Docker 容器内运行的 AI/ML 工作负载,这些工作负载需要 GPU 加速来进行模型训练或推理。
- 带 cPanel 的 VPS — 如果您需要 Docker 与用户友好的控制面板相结合来管理网站和电子邮件,这种组合提供了两全其美的解决方案。
在 CentOS 上排查常见 Docker 问题
Docker 守护程序无法启动
检查系统日志以获取错误详情:
journalctl -u docker --no-pager | tail -50权限被拒绝错误
如果您看到 Got permission denied while trying to connect to the Docker daemon socket,请确保您的用户在 docker 组中,并且您已注销并重新登录。
无法拉取镜像
验证您的服务器具有出站互联网访问权限,并且 DNS 解析正确:
curl -I https://registry-1.docker.io容器网络问题
重启 Docker 以重新初始化网络桥接:
sudo systemctl restart docker结论
您现在已成功在 CentOS 上安装了 Docker,并为容器工作奠定了坚实的基础。以下是所涵盖内容的快速回顾:
- ✅ 更新了系统并安装了依赖项
- ✅ 添加了官方 Docker 存储库
- ✅ 安装了 Docker CE 并验证了安装
- ✅ 配置了 Docker 在启动时启动
- ✅ 设置了非 root 用户访问
- ✅ 学习了基本的 Docker 命令
- ✅ 安装了 Docker Compose 用于多容器管理
- ✅ 探索了守护进程配置选项
CentOS 上的 Docker 开启了无限可能——从运行隔离的开发环境到在生产中部署可扩展的微服务架构。您在这里建立的容器化技能将成为更高级主题(如 Kubernetes 编排、CI/CD 管道和云原生应用程序开发)的基础。
为了获得最佳的 Docker 体验,请确保您的服务器环境能够胜任。探索 AlexHost 的 VPS 托管计划,为您所有的容器化工作负载提供强大、可靠和经济实惠的基础。
