一、Docker的架构和底层技术1.Docker Platform(平台)
- Docker提供了一个开发、打包、运行App(应用application)的平台
- 把app和底层infrastructure(基础设备)隔离开来
文章插图
2.Docker Engine
2.1 组成
- 后台进程(dockerd)
- 用于一些后台的操作 , 如image、container、网络及存储的管理
- REST API Server
- 用于dockerd和docker之间通信的接口服务
- CLI接口(docker)运行docker version命令是显示的client 版本和server engine版本 , client和server之间是一个cs架构的
文章插图
- 运行docker version命令可以看到客户端版本与服务端engine版本 , 查找docker进程可以看到后台是执行的dockerd进程
文章插图
3.Docker Architecture(架构)
文章插图
4.底层技术支持
Namespaces:做隔离pid、net、ipc、mnt、uts
Control groups:做资源限制
Union file systems:Container和image的分层
二、Docker Image(镜像)1.概述
- 文件和meta data的集合(root filesystem)
- 分层的 , 并且每一层都可以添加改变删除文件 , 成为一个新的image
- 不同的image可以共享相同的layer(层)
- image本身是read-only(只读)
文章插图
- 查看本地存在的image
docker image ls
2.获取image的第一种方式
Build from Dockerfile
Docker提供一个配置文件Dockerfile , 就好比之前博主使用Vagrant工具时的Vagrantfile文件一样 , 通过Dockerfile文件就可以去定义一个docker image镜像 , build这个dockerfile文件就可以构建出一个image镜像
- 在cdtaogang目录下创建dockerfile文件 , 内容如下
文章插图
- 执行docker build命令进行构建镜像 , -t 镜像名称 , 后面的.是表示当前dockerfile路径
docker build -t cdtaogang123/redis:latest .
- 提示如下超时 , docker安装后默认没有daemon.json这个配置文件 , 需要进行手动创建 , 配置文件的默认路径:/etc/docker/daemon.json , 在阿里云中复制加速器地址 , 进行添加
{"registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]}
文章插图
- 重启生效
sudo systemctl daemon-reloadsudo systemctl restart docker
文章插图
- 再次build构建 , 显示成功
文章插图
- 在执行build构建时 , dockerfile文件中每一行代码都表示一个步骤 , 一共有7行代码 , 所以build时 , 会显示执行这7个步骤
文章插图
- 此时查看本地image镜像就可以看到以上创建的镜像了
文章插图
3.获取image的第二种方式
Pull from Registry
类似github 仓库 , 可以git clone拉取仓库的文件 , 也可以将文件push到仓库中 , 那么docker pull则是在docker hub上去拉取你要的镜像
- 在docker hub网站上查看image基础镜像
文章插图
- 如点击centos进入后 , 选择tags标签 , 可以看到很多版本的centos镜像 , 对应有拉取命令
推荐阅读
- 巧用批处理工具分析monkey日志
- 脸部长斑怎样调理
- 做完眉毛用生理盐水洗
- 护理和护士有什么区别?
- 无线充电是什么原理?
- 怎么做微商代理?
- 马克思主义的基本原理是什么?
- π是有理数还是无理数?
- 田螺怎么处理才干净?
- 人类能不能用声音震碎玻璃杯?