Docker技术实践——中级篇

1.1     存储机制

每个镜像由多个镜像层组成,镜像层都是只读的,从下往上,以栈方式组合在一起,组成容器的根文件系统。镜像文件默认保存在主机的/var/lib/docker/volumes中。

容器层是可读写层。每个容器运行时都有自己的容器层,保存容器运行相关的数据,容器层之下的所有镜像都是只读的,多个容器可以共享一个镜像。容器层是保存在/var/lib/docker/containers路径。每次新建容器时,只需要为每个容器新建一个可写的数据层,而不用复制所有的镜像层。

容器层和镜像层都保存在宿主机的文件系统中,通过Docker存储驱动来管理。

1.2     数据卷和存储驱动

容器使用数据卷保证数据持久性,删除容器时候,所有不在数据卷中的数据都会被删除。因为数据卷是主机上的一个文件或者目录,不受存储驱动程序管理。

    Docker设计了一套存储驱动插件框架,开发者可以基于此套标准,设计开发自己的存储驱动。


    可以使用docker info查看当前存储驱动。

    使用哪种存储驱动取决于用户在宿主机上使用何种文件系统。有些存储驱动可以工作在不同的后端文件系统上。


    可以在启动Docker使用使用--storage-driver来指定。

    Docker中每种存储驱动都是基于Linux文件系统或卷管理工具的。

 

1.3     定制Docker Daemon

因为Docker Daemon有七八十个启动选项,根据应用场景定制Docker运行环境就显得非常有必要。

    在命令行中输入dockerd即可启动,就是默认的方式启动Daemon了。

    如果开启debug模式,可以执行

#dockerd -D

    仓库相关配置:

    --disable-legacy-registry选项,可以选择不从旧版本的镜像仓库中下载镜像。因为Docker从1.6版本后,支持从V2版本的镜像仓库下载镜像。

    使用镜像仓库,使用参数—registry-mirror选项。

    此外,还有何网络配置相关的等等。

    因为,旧版本docker的配置文件默认的在 /etc/default/docker ,现在已不推荐。

变量的使用查看/lib/systemd/system/docker.service

    可以参考官方指南:

Control Docker with systemd

猜你喜欢

转载自blog.csdn.net/notbaron/article/details/79991911