- 一个容器实际上就是运行在宿主机上的一个进程,这个进程以及子进程会认为自己运行在一个独立的世界里。
- Docker相对于其他虚拟化技术的优势在于:创建、删除容器速度快,容器运行占用开销非常小。而相对于其他容器技术,Docker让容器的管理更加方便,不需掌握高深技术。
- Docker很可能改变传统的软件“交付”方式和“运行”方式。
-
Docker组成(C/S架构):
- Docker Client
- Docker Daemon
-
Docker Image (构建打包阶段)
- 容器的基石,类似容器的源代码
- 层叠的只读文件系统
- 联合加载 union mount
-
Docker Container (启动运行阶段)
- 通过镜像启动
- 写时复制 copy on write。容器镜像栈最上层是读写层,其余下层都是只读层。当容器要更改数据时,会将只读层的数据复制到读写层,而只读层的数据则被隐藏。
-
Docker Registry(仓库)
- 公有 Docker Hub
- 私有
- image和container的关系可以理解为“类”和“实例”的关系。而且在一个机器环境里跑的container还可以是基于不同的image。你可以随时把一个container打包成一个image作再次的部署。其次,你在一个container里作的修改也可以更新到基于同一image的其它container里。因为可以只更新修改过的部分,类似于版本控制下的更新。事实上它也有一个类似版本管理仓库(Repositry)的东西,有docker.io提供的官方仓库(index.docker.io,相当于 github),也可以自建(叫docker-registry)。