docker学习之一docker概念

镜像

类虚拟机快照,更轻量


创建镜像的方式:

已有基础镜像修改创建子镜像

运行一个镜像,对其修改并提交


镜像特征

唯一ID(ubantu:latest)



容器

可以用镜像创建容器

容器类似虚拟机,是隔离的

唯一ID

设计用来运行单进程

容器是短暂的一次性的,停止后,再启动又回初始状态(虚拟机不同)

原因是创建容器时,docker会创建一个空白的union文件系统加载在与该镜像关联的union文件系统之上

创建变化时能体现出来,但是停止时该容器union文件系统会被丢弃(除非新建镜像或分配卷)




数据卷

不受容器生命周期影响进行数据持久化

卷针对容器保存在运行docker的宿主文件系统上

保存在其他类型文件系统上的,不是卷

卷可以在容器间共享数据


链接

容器启动,随机IP

新容器可以引用存在的容器别名,那么容器就链接在了一起

容器创建时,声明被链接时开放哪些端口(否则将没端口可用)


镜像可移植性

镜像中定义的卷只能是默认位置(指定宿主中的位置不能保证是否存在)

可以指定创建链接时公开给其他容器的端口,不能指定公开给宿主的端口(宿主端口是否可用未知)

不能在镜像上定义链接,无法预知镜像的宿主如何命名容器

镜像必须完全可移植


Cgroups

可以限制、记录、隔离进程组所使用的物理资源(CPUmemoryIO等),为容器实现虚拟化提供基本保证

本质上,cgroups是内核附加在程序上的一些hooks,程序对资源调度时触发钩子以达到资源追踪和限制的目的


Union文件系统

每个镜像与一个union文件系统关联,是一个树状的多(layer)层结构文件系统,类似版本管理的diff

你可能感兴趣的:(docker)