千家信息网

Docker操作实践(2):Docker的安装及架构介绍

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,上篇我们分享了一下容器的演进,然后用进程隔离、文件隔离、namespace、cgroups、libcontainer的几个角度展开容器的本质,本篇文章会对Docker的版本安装进行讲解并简介Docke
千家信息网最后更新 2026年11月03日Docker操作实践(2):Docker的安装及架构介绍

上篇我们分享了一下容器的演进,然后用进程隔离、文件隔离、namespace、cgroups、libcontainer的几个角度展开容器的本质,本篇文章会对Docker的版本安装进行讲解并简介Docker的技术架构。


如果你还没看过前面的内容:可以点击《容器的本质是什么?容器从何而来?》


Docker版本

Docker在1.13之后,采用时间线作为版本号标识。Docker的版本分为社区版(CE)和企业版(EE)。企业版会提供额外的收费服务,比如包括一些经过官方认证的插件、容器等。


社区版又分为三种版本:

稳定版本:stable。一般我们使用此版本。

预发布版:test

待发布版:nightly



Docker安装


1.卸载docker

卸载主机上已有的docker版本


2. 安装前准备

配置yum

1. 安装yum工具及devicemapper存储驱动



2. 配置yum



yum makecache的过程中,可以看到可以安装使用的包是dockerr-ce-stable版本,也就是repo中默认只开启stable仓库。


此时如果我们需要安装test或nightly版本,可以使用yum-config-manger -enable docker-ce-test开启此仓库。


安装docker

可以使用yum list查看仓库中docker的版本:



1. 安装docker



2. 启动docker

systemctl start docker

systemctl enable docker


3. 查看docker版本




Docker镜像下载加速器的配置

可配置阿里镜像加速器,配置方法参考链接:

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors


针对docker客户端版本大于1.10.0的,可通过修改/etc/docker/daemon.json文件来使用加速器。


如果该文件不存在,则直接创建。


操作命令:

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'

{

"registry-mirrors": ["镜像加速器地址(可从上面阿里云链接地址中获取)"]

}


EOF

sudo systemctl daemon-reload

sudo systemctl restart docker



Docker架构

Docker采用了传统的client-server架构模式,总架构图如下:



用户通过docker client与docker daemon建立通信,并将请求发送给后者。Docker daemon中的模块是松耦合结构,各模块各司其职并有机组合,完成用户的请求。


API:用于接收docker client的请求,然后根据不同的请求分发给daemon的不同模块执行相关的工作。


Docker client:是一个泛称,用来向指定的docker daemon发起请求。可以是docker命令行工具,也可以是任何遵循了docker api的客户端。


Graph:作为容器镜像的保管者。不论是docker下载的镜像,还是docker构建的镜像,都由graph统一管理。


Execdriver:是对linux操作系统的namespace、cgroups、apparmor、SELinux等容器运行所需的系统操作进行的一层二次封装,其本质作用类似于LXC,但是功能要更全面。这也就是为什么LXC会作为execdriver的一种实现而存在。不过目前,execdriver最主要的实现也是默认的实现是libcontainer库


Networkdriver:对容器网络环境操作所进行的封装。对于容器来说,网络设备的配置相对比较独立,并且应该允许用户进行更多的配置,所以在docker中,这一部分是单独作为一个driverr来设计和实现的。这些操作具体包括创建容器通信所需的网络,这个网络所需的虚拟网上,分配通信所需的IP,服务访问的端口和容器与宿该机之间的端口映射,设置hosts、resolv.conf、iptables等。


Graphdriver:是所有与容器镜像相关操作的最终执行者。包括从远程docker registry上下载镜像并进行存储,也包括本地构建完镜像后的存储。当用户下载指定的容器镜像时,graphdriver将容器镜像分层存储在本地的指定目录下;同时当用户需要使用指定的容器镜像来创建容器时,graphdriver从本地镜像存储目录中获取指定的容器铝合金,并按特定规则为容器准备rootfs;另外,当用户需要通过指定dockerfile构建全新镜像时,graphdriver会负责新镜像的存储管理。目前graphdriver支持对接四种不同的文件存储:aufs、btrfs、vfs、devmapper。



Docker VS 虚拟机


1. Docker与虚拟机的架构对比

Docker架构与虚拟机架构对比情况如下图。最直观的差别在于docker容器中是没有独立的os,而是与宿主机共用同一个内核。然后通过隔离技术,让我们在进入每一个容器时,所看到的内容和操作的环境就像是在一个虚拟机中一样。


2. 容器与虚拟机的优劣对比

容器与虚拟机的对比情况如下:



在安全性上,虚拟机肯定是比容器要好的,显而易见,虚拟机毕竟拥有着独立的操作系统。


在计算资源开销和镜像大小对比上,容器优势更大,从而实现了硬件资源的节约。


在启动速度、快速扩展能力上,容器优势更大,从而实现了容器化应用的快速部署/扩容,从而提高业务的敏捷性


在跨平台迁移能力上,容器优势更大,这对于容器化应用在企业的不同云环境之间的迁移提供了非常大的便利性。


基于以上的种种优势,容器实现了对微服务架构和devops的更好的支持。


作者:沈晓龙



好文推荐

容器的本质是什么?容器从何而来?

使用sqlplus进行Oracle数据库批量自动发布

业务复杂、数据庞大、应用广怎办?了解下分布式事务的解决思路!

这里有份选择云服务商的攻略,请查收…

SaaS设计:自动化服务启停设计示例


容器 镜像 版本 架构 存储 配置 用户 服务 不同 优势 加速器 文件 本质 网络 仓库 企业 模块 环境 系统 应用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 瑰夏咖啡 高科技互联网 金诺互联网科技 互联网科技与金融科技 金融科技 互联网金融 互联网医疗科技 唐信互联网科技 深圳卡尔迅互联网科技有限公司怎么样 隆华科技工业互联网 厦门比较好的科技互联网公司 南平创想时代互联网科技有限公司 宜昌元轩互联网科技有限公司 哈尔滨屹滨互联网科技有限公司 健康食品互联网创新科技园项目 佛山市拉法互联网科技有限公司 晋城互联网科技 2021世界互联网领先科技成果发布 互联网科技企业商标注意事项 互联网科技手抄报图片 杭州科技互联网公司有哪些 互联网医疗科技 上海挚品互联网科技 宁波青枫互联网科技有限公司 以后互联网后是啥科技 港股科技和互联网 河南猎农互联网科技有限公司 996高科技互联网公司 山东大美朱楼互联网科技有限公司 世界互联网科技成果奖 北京互联网科技类企业分布
0