Docker是当下主流的容器管理工具,凭借轻量化、可移植、高一致性的特点,广泛应用于应用打包、部署、运维等场景。本文将完整梳理Docker核心生态架构,并详细讲解两种主流的Docker-ce部署方式,适配CentOS系统,适合新手学习与实操留存。
一、Docker 核心生态架构
Docker生态是一套完整的容器运行体系,由主机、守护进程、客户端、镜像、容器、镜像仓库等核心组件构成,各组件协同工作,实现容器的全生命周期管理。
1.1 核心组件详解
1. Docker Host(Docker主机)
部署安装Docker守护进程(daemon)的服务器/主机,是所有容器、镜像运行的基础载体。所有容器均运行在Docker Host之上,依托主机资源完成应用运行。
2. Docker daemon(Docker守护进程)
Docker的核心后台服务,常驻于系统后台,主要负责管理本机的容器、镜像、网络、存储等核心资源。底层基于 Containerd.io 实现容器的创建、启动、停止、销毁等核心管控操作,是Docker体系的核心调度中枢。
3. Registry(镜像仓库)
专门用于存储Docker镜像的仓库服务,镜像作为容器运行的模板,可通过仓库实现共享、下载、复用。用户可直接从仓库拉取现成镜像,快速启动容器运行应用。
常见仓库类型:
- 公共仓库:Docker Hub(官方公共镜像仓库)
- 私有仓库:Harbor(企业内部私有镜像仓库,保障镜像安全、私有化部署)
4. Docker client(Docker客户端)
用户操作Docker的交互工具,是连接用户与Docker daemon的桥梁。用户通过输入docker命令,由客户端转发指令给守护进程执行。该客户端可部署在Docker本机,也可部署在其他可网络连通的主机,远程操作Docker服务。
5. Image(容器镜像)
打包了应用程序、运行环境、依赖库、系统配置的只读模板文件,具备不可变性。镜像是启动容器的唯一依据,一个镜像可以批量启动多个独立容器,实现应用环境一致性部署。
6. Container(容器)
由镜像实例化生成的可读写运行环境,是应用程序的实际运行载体。容器继承镜像的所有基础文件,同时支持运行过程中新增、修改文件,拥有独立的运行空间、网络、进程资源,相互隔离互不干扰。
7. Docker Dashboard
Docker可视化管理界面,仅支持Mac、Windows系统,Linux系统无此功能。无需输入命令行,可通过图形界面直观管理本机镜像、容器、应用,简化Docker日常运维操作。
1.2 Docker版本区分
Docker主要分为社区版与企业版,适配不同使用场景:
- Docker-ce(社区版):免费开源,面向个人开发者、测试环境,日常学习、开发测试优先使用。
- Docker-ee(企业版):商业收费版本,面向企业生产环境,提供官方技术支持、安全加固、企业级运维能力;2020年曾因国际政策原因,短暂限制国内企业使用,支持1个月免费试用。
二、Docker-ce 部署实战(CentOS)
本文统一部署Docker社区版(Docker-ce),提供YUM源部署、二进制部署两种方式,其中YUM源为生产推荐方式。
注意:官方境外文档及二进制下载链接当前无法访问,实操优先使用阿里云镜像YUM源部署。
2.1 YUM源部署(推荐)
YUM源部署支持自动安装依赖、便捷升级、稳定维护,是企业生产环境首选。可选用官方源、清华镜像源、阿里云镜像源,优先推荐阿里云镜像源,国内访问速度快、稳定性高。
2.1.1 下载阿里云Docker YUM源文件
在Docker主机执行wget命令,将阿里云官方Docker源文件下载到系统YUM源配置目录:
# 下载阿里云Docker-ce YUM源
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo2.1.2 安装Docker-ce
通过yum命令一键安装稳定版Docker-ce,系统会自动适配安装Docker daemon、客户端及所有依赖组件:
# 一键安装Docker社区版
yum -y install docker-ce2.1.3 配置Docker守护进程服务文件
Docker默认配置会影响CentOS系统Iptables防火墙FORWARD链规则,同时为支持自定义daemon.json配置文件,需修改系统服务配置:
# 编辑Docker系统服务配置文件
vim /usr/lib/systemd/system/docker.service根据实际运维需求修改对应参数,保存退出即可。
2.1.4 启动服务并验证安装
重载系统服务配置、启动Docker并设置开机自启,最后查看版本验证安装成功:
# 重载系统daemon配置
systemctl daemon-reload
# 启动Docker服务
systemctl start docker
# 设置开机自启动
systemctl enable docker
# 查看Docker版本,验证安装
docker version安装成功版本信息示例:本次安装版本为20.10.12,包含客户端、服务端、containerd、runc等完整组件,组件版本匹配、运行正常。
2.2 二进制文件部署(备用方式)
该方式为离线手动部署方案,官方不推荐生产使用,核心缺点为无法自动更新、后续升级维护繁琐,仅适用于网络受限、无法使用YUM源的特殊场景。
注意:官方二进制下载境外链接无法正常访问,可通过国内镜像站获取对应安装包。
2.2.1 下载二进制安装包
# 下载Docker20.10.9二进制压缩包
wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.9.tgz2.2.2 解压并部署二进制文件
# 解压安装包
tar xf docker-20.10.9.tgz
# 将解压后的所有核心二进制文件拷贝到系统可执行目录
cp docker/* /usr/bin/解压后包含dockerd、docker、runc、containerd等核心运行文件,覆盖系统目录后即可调用。
2.2.3 启动Docker守护进程
# 后台启动Docker守护进程
dockerd 启动后会输出大量日志信息,回车即可退出日志界面,正常使用Docker命令。如需自定义配置,可编辑
/etc/docker/daemon.json 文件添加个性化参数。2.2.4 验证部署结果
# 查看Docker命令路径
which docker
# 查看二进制部署的Docker版本
docker version部署成功后可正常显示客户端、服务端及配套组件版本,代表二进制部署完成。
三、部署方式总结
- YUM源部署:推荐首选,操作简单、自动维护依赖、支持在线升级、稳定性高,适配绝大多数生产、测试场景。
- 二进制部署:仅作为离线备用方案,无自动更新机制,后期运维成本高,不建议长期使用。
国内环境实操建议:全程使用阿里云镜像源,规避境外链接访问失败问题,提升部署成功率与运行稳定性。
