Docker 没有为每个容器专门定制镜像,那么怎么自定义配置容器的主机名和 DNS 配置呢?秘诀就是它利用虚拟文件来挂载到来容器的 3 个相关配置文件。在容器中使用 mount 命令可以看到挂载信息:$ mount.../dev/disk/by-uuid/1fec...ebdf on /etc/hostname type ext4 .../dev/disk/by-uuid/1fec...ebdf on /etc/hosts type ext4 ...tmpfs on /etc/resolv.
数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性:数据卷可以在容器之间共享和重用对数据卷的修改会立马生效对数据卷的更新,不会影响镜像卷会一直存在,直到没有容器使用*数据卷的使用,类似于 Linux 下对目录或文件进行 mount。创建一个数据卷在用 docker run 命令的时候,使用 -v 标记来创建一个数据卷并挂载到容器里。
Docker 镜像是怎么实现增量的修改和维护的?每个镜像都由很多层次构成,Docker 使用 Union FS 将这些不同的层结合到一个镜像中去。通常 Union FS 有两个用途, 一方面可以实现不借助 LVM、RAID 将多个 disk 挂到同一个目录下,另一个更常用的就是将一个只读的分支和一个可写的分支联合在一起,Live CD 正是基于此方法可以允许在镜像不变的基础上允许用户在其上进行一些写操作。
存出镜像如果要导出镜像到本地文件,可以使用 docker save 命令。$ sudo docker imagesREPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEubuntu 14.04 c4ff7513909d 5 weeks ago 225.4 MB...$sudo docker save -o ubuntu_14.04.tar ubuntu:14.