CentOS Docker 安装:从零开始搭建容器化开发环境
你是否曾为项目部署时“在我机器上能跑”的问题头疼?是否在不同环境间反复调试,浪费大量时间?容器化技术,尤其是 Docker,正是解决这类问题的利器。它让你把应用及其依赖打包成一个“集装箱”,无论放到哪台服务器上,都能稳定运行。
CentOS 作为企业级 Linux 发行版,长期稳定,是很多开发和运维团队的首选。而 Docker 在 CentOS 上的安装与使用,也相对成熟。今天,我们就来手把手带你完成一次完整的 CentOS Docker 安装流程,全程无坑,适合初学者和中级开发者。
为什么选择 CentOS 与 Docker 组合?
在动手之前,先理解为什么这个组合如此受欢迎。你可以把 CentOS 想象成一座坚固的“房屋地基”,它稳定、安全、长期支持。而 Docker 就像是屋内的“模块化家具”——你可以随时更换、组合,比如今天放个数据库柜,明天换成 Web 服务器柜,完全不影响房子结构。
这种“环境即代码”的理念,正是现代 DevOps 的核心。通过 Docker,你可以将整个开发、测试、生产环境统一标准化,真正实现“一次构建,处处运行”。
环境准备:确认 CentOS 系统状态
在安装 Docker 之前,确保你的 CentOS 系统满足基本要求。我们以 CentOS 7 或 CentOS 8 为例(推荐使用 CentOS 8 Stream 或 CentOS Stream 8,更贴近最新版本)。
首先,登录你的 CentOS 服务器,执行以下命令检查系统版本:
cat /etc/centos-release
输出示例:
CentOS Linux release 8.5.2111
确保系统已经更新到最新状态,避免安装过程中出现依赖冲突:
sudo yum update -y
✅ 注释:
yum是 CentOS 7 的包管理工具,CentOS 8 及以上版本已逐步转向dnf,但yum依然可用。-y参数表示自动确认所有提示,避免交互中断。
安装 Docker Engine:核心步骤详解
Docker 的核心是 Docker Engine,它负责管理容器的创建、运行、网络和存储。安装过程分为三步:添加 Docker 官方仓库、安装 Docker 包、启动服务。
添加 Docker 官方 GPG 密钥与仓库
由于 Docker 不是 CentOS 官方默认包,我们需要添加其官方仓库以确保安装包的可信性。
sudo rpm --import https://download.docker.com/linux/centos/gpg
sudo tee /etc/yum.repos.d/docker-ce.repo <<EOF
[docker-ce-stable]
name=Docker CE Stable - \$basearch
baseurl=https://download.docker.com/linux/centos/\$releasever/\$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
EOF
✅ 注释:
tee命令用于将输入内容写入文件。<<EOF ... EOF是 Heredoc 语法,表示将中间所有内容写入文件。$basearch和$releasever是变量,会自动替换为当前系统的架构(如 x86_64)和版本号。
安装 Docker CE
现在,我们就可以使用 yum 安装 Docker 了:
sudo yum install -y docker-ce docker-ce-cli containerd.io
✅ 注释:
docker-ce是 Docker 社区版,docker-ce-cli是命令行工具,containerd.io是底层容器运行时,三者缺一不可。-y确保自动确认安装。
启动并设置 Docker 开机自启
安装完成后,需要手动启动 Docker 服务,并设置开机自启:
sudo systemctl start docker
sudo systemctl enable docker
✅ 注释:
systemctl是 systemd 系统管理工具。start启动服务,enable设置开机启动。你可以通过systemctl status docker查看服务是否运行正常。
验证安装是否成功
安装完成后,一定要进行验证,确保 Docker 可以正常工作。最简单的测试方式是运行一个临时容器:
sudo docker run hello-world
✅ 注释:这个命令会从 Docker Hub 拉取一个名为
hello-world的镜像,运行一个简单的容器,输出“Hello from Docker!”。如果看到这条信息,说明 Docker 安装成功!
配置用户权限:避免频繁使用 sudo
默认情况下,只有 root 用户或使用 sudo 的用户才能执行 Docker 命令。这在日常开发中非常不便。我们可以将当前用户加入 docker 用户组,实现免 sudo 使用。
sudo usermod -aG docker $USER
✅ 注释:
$USER是环境变量,代表当前登录用户名。-aG表示追加用户到组,-a是 append,-G是 group。执行此命令后,你需要重新登录或重启终端,才能生效。
验证是否成功:
docker run hello-world
如果不再提示权限错误,说明配置成功!
实战案例:运行一个 Nginx Web 服务器
现在,我们来做一个实际的演示:在 CentOS 上运行一个 Nginx 服务,访问它并看到欢迎页面。
sudo docker run -d -p 8080:80 --name my-nginx nginx:latest
✅ 注释:
-d:后台运行(detached 模式)-p 8080:80:将宿主机的 8080 端口映射到容器的 80 端口(Nginx 默认端口)--name my-nginx:为容器指定一个名字,方便管理nginx:latest:从 Docker Hub 拉取最新的 Nginx 镜像
启动后,打开浏览器,访问 http://你的服务器IP:8080,你应该能看到 Nginx 的默认欢迎页面。
常见问题与解决方案
在 CentOS Docker 安装过程中,可能会遇到一些常见问题。以下是几个典型情况及应对方法:
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
Permission denied |
用户未加入 docker 组 | 重新执行 usermod -aG docker $USER 并重新登录 |
Cannot connect to the Docker daemon |
Docker 服务未启动 | 执行 sudo systemctl start docker |
Failed to connect to the Docker daemon |
SELinux 阻止 | 临时关闭:sudo setenforce 0,或配置 SELinux 规则 |
Unable to pull image |
网络问题或镜像源不可用 | 检查网络,或配置国内镜像加速器 |
✅ 提示:如果你在中国大陆,建议配置镜像加速器,提升镜像拉取速度。可参考阿里云、腾讯云等提供的加速地址,通过修改
/etc/docker/daemon.json文件实现。
总结与下一步建议
通过本文,你已经完成了一次完整的 CentOS Docker 安装流程。从系统准备、仓库配置、服务启动,到实际运行容器,每一步都为你打下了坚实基础。
Docker 不仅是“运行容器”的工具,更是一种全新的开发与部署思维。未来你可以尝试:
- 编写
Dockerfile构建自己的镜像 - 使用
docker-compose管理多容器应用 - 集成到 CI/CD 流程中,实现自动化部署
记住,掌握 CentOS Docker 安装,只是你容器化之旅的第一步。随着实践深入,你会越来越体会到“环境一致性”带来的巨大效率提升。
如果你在安装过程中遇到问题,欢迎在评论区留言交流。一起学习,一起进步。