如何在 CentOS 上安装 Docker:完整分步指南
Docker 从根本上改变了开发人员构建、交付和运行应用程序的方式。通过将软件打包到轻量级、可移植的容器中,Docker 消除了经典的”在我的机器上可以运行”问题,并大大简化了开发工作流和生产部署。如果您正在运行 CentOS 并想要利用容器化的力量,本综合指南将引导您完成每一步——从全新的系统更新到高级配置。
无论您是部署单个 Web 应用程序还是编排复杂的多容器环境,在 CentOS 上正确安装 Docker 是至关重要的第一步。
前置条件
开始之前,请确保您拥有:
- CentOS 7 或 CentOS 8 服务器(物理或虚拟)
- 具有
sudo权限的用户账户 - 稳定的互联网连接
- 对 Linux 命令行的基本熟悉
> 专业提示:为了获得最佳的 Docker 体验,请考虑在 VPS 托管计划上运行它。虚拟专用服务器为您提供完整的 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 引擎
有了存储库,安装 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:基本 Docker 命令参考
Docker 运行后,以下是您日常使用最重要的命令:
容器管理
# 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 prune镜像管理
# 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 -a运行容器
# 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_name查看日志和统计信息
# 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 容器内运行需要 GPU 加速进行模型训练或推理的 AI/ML 工作负载。
- 带 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 组中,并且您已注销并重新登录。
