CentOS上Docker安装指南与组件解析:从安装到原理
2025.09.26 20:51浏览量:40简介:本文详细介绍在CentOS系统上安装Docker的完整步骤,并深入解析docker-ce-cli、docker-ce和containerd.io三个核心组件的区别与协作机制,帮助读者掌握Docker环境搭建与组件工作原理。
CentOS安装Docker的详细步骤
1. 系统环境准备
在开始安装前,需确保CentOS系统满足以下条件:
- 系统版本:CentOS 7或CentOS 8(推荐使用最新稳定版)
- 内核版本:3.10及以上(通过
uname -r命令检查) - 硬件要求:至少2GB内存(生产环境建议4GB以上)
- 网络配置:确保服务器可访问互联网
操作建议:
- 使用
yum update -y更新所有系统包 - 关闭防火墙(测试环境)或配置防火墙规则允许Docker通信:
sudo systemctl stop firewalldsudo systemctl disable firewalld
2. 安装依赖工具
Docker依赖以下工具:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
yum-utils:提供yum-config-manager工具device-mapper:Docker存储驱动依赖lvm2:逻辑卷管理工具
3. 配置Docker仓库
添加官方Docker CE仓库:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
验证仓库配置:
yum repolist enabled | grep docker
应看到类似输出:
docker-ce-stable/x86_64 Docker CE Stable - x86_64
4. 安装Docker CE
安装最新稳定版:
sudo yum install -y docker-ce docker-ce-cli containerd.io
或指定版本安装(例如19.03版本):
sudo yum install -y docker-ce-19.03.15 docker-ce-cli-19.03.15 containerd.io
5. 启动Docker服务
sudo systemctl start dockersudo systemctl enable docker
验证安装:
sudo docker run hello-world
看到”Hello from Docker!”表示安装成功。
6. 配置镜像加速(可选)
编辑/etc/docker/daemon.json:
{"registry-mirrors": ["https://registry.docker-cn.com"]}
重启服务:
sudo systemctl restart docker
Docker核心组件解析
1. docker-ce(Docker Community Edition)
定位:Docker开源社区版核心引擎
功能:
- 容器生命周期管理(创建、启动、停止、删除)
- 镜像管理(拉取、构建、推送)
- 网络配置(桥接、覆盖网络)
- 存储卷管理
工作原理:
通过REST API与containerd交互,使用runc作为默认运行时执行容器。架构图如下:
用户命令 → docker-ce → gRPC → containerd → runc → 容器
2. docker-ce-cli(Docker CLI工具)
定位:Docker命令行接口
与docker-ce关系:
- 传统架构中两者捆绑安装
- 现代架构中作为独立包提供,可与远程Docker守护进程交互
核心能力:
- 容器操作:
docker run、docker exec - 镜像管理:
docker build、docker pull - 网络配置:
docker network - 系统管理:
docker info、docker version
使用示例:
# 运行临时容器docker run --rm alpine echo "Hello"# 构建镜像docker build -t myapp .
3. containerd.io(容器运行时核心)
定位:OCI标准兼容的容器运行时
核心功能:
- 容器生命周期管理(通过gRPC API)
- 镜像拉取与存储
- 任务管理(启动/停止容器进程)
- 快照管理(存储层)
与docker-ce协作:
- docker-ce接收用户命令
- 通过gRPC调用containerd服务
- containerd委托runc实际创建容器
- 返回执行结果给docker-ce
独立使用场景:
- Kubernetes集成(作为CRI运行时)
- 需要轻量级运行时环境
- 自定义容器管理解决方案
组件对比表
| 组件 | 角色 | 依赖关系 | 典型使用场景 |
|---|---|---|---|
| docker-ce | 容器管理引擎 | 依赖containerd | 完整Docker体验 |
| docker-ce-cli | 命令行工具 | 可独立安装 | 远程管理Docker主机 |
| containerd.io | 容器运行时核心 | 可独立运行 | Kubernetes/自定义容器环境 |
最佳实践建议
版本匹配原则:
- 确保docker-ce、docker-ce-cli、containerd.io版本兼容
- 使用
yum list installed | grep docker检查版本
安全配置:
# 创建docker用户组sudo groupadd dockersudo usermod -aG docker $USERnewgrp docker # 立即生效
资源限制配置:
编辑/etc/docker/daemon.json添加:{"default-ulimits": {"nofile": {"Name": "nofile","Hard": 65535,"Soft": 65535}}}
日志轮转配置:
{"log-driver": "json-file","log-opts": {"max-size": "10m","max-file": "3"}}
常见问题解决方案
启动失败处理:
# 查看详细错误journalctl -u docker --no-pager -n 50# 常见原因:# - 存储目录权限问题(/var/lib/docker)# - 配置文件语法错误# - 端口冲突(2375/2376)
镜像拉取慢:
- 配置国内镜像源(阿里云/腾讯云)
- 使用
--registry-mirror参数启动Docker
版本冲突解决:
# 列出已安装包yum list installed | grep docker# 卸载冲突包sudo yum remove docker-ce docker-ce-cli containerd.io# 清理残留sudo rm -rf /var/lib/docker
总结
通过本文详细步骤,读者可完成CentOS系统上Docker的完整安装,并深入理解docker-ce、docker-ce-cli和containerd.io三个核心组件的定位与协作机制。实际生产环境中,建议:
- 保持组件版本一致性
- 配置适当的资源限制
- 设置镜像加速提高效率
- 实施必要的安全加固措施
掌握这些核心概念后,开发者可以更高效地管理Docker环境,并根据实际需求选择合适的组件组合(如仅使用containerd.io配合Kubernetes)。

发表评论
登录后可评论,请前往 登录 或 注册