这里不会介绍docker命令,主要站在一个比较high level的层去介绍docker涉及到的相关技术,文中会提到以下内容(大部分以PPT+参考链接显示)
- 容器规范
- docker 架构
- 容器镜像
- 存储机制
- 网络
容器的规范
OIC 参考 https://opencontainers.org/about/overview/
中文介绍: https://www.jianshu.com/p/87b4876fbf65
Docker引擎:我们通常使用的命令(如:docker image)操作就是在Client docker CLI layer.
参考:
https://docs.docker.com/engine/
https://docs.docker.com/get-started/overview/#docker-architecture
架构
容器镜像
镜像分层:镜像层(RO read-only)+容器层(RW read-write)
快照技术:参考
https://baijiahao.baidu.com/s?id=1646011940533428934&wfr=spider&for=pc
https://stackoverflow.com/questions/32441736/cow-vs-row-snapshot-technologies
COW(Copy-On-Write):当写请求发生时,会先将旧数据在copy到新的的区域,在原始的区域写入新的数据。
ROW(Redirect-On-Write):当写请求发生时,会将新的数据写入到新的区域。原始的位置数据保持不变。
存储机制
docker info可以查看当前是用什么存储驱动
数据管理:volume, bind mount
数据同步是通常docker cp来实现的。当删除容器的时候,本地的目录还是存在的。表明是持久化存储。
数据共享:主机与容器, 容器与容器
volume container 模式:
Docker 网络