docker镜像与分层
docker镜像由一些松耦合的制度镜像层组成
docker负责堆叠这些镜像层并将它们表示为单个统一的对象
当 docker image pull ubuntu:latest 时 每一行 pull complete就代表拉取完成了一层
查看镜像分层的方式 docker image inspect
beginner@beginner-virtual-machine:~$ docker pull tomcat
Using default tag: latest
latest: Pulling from library/tomcat
0e29546d541c: Pull complete
9b829c73b52b: Pull complete
cb5b7ae36172: Pull complete
6494e4811622: Pull complete
668f6fcc5fa5: Pull complete
dc120c3e0290: Pull complete
8f7c0eebb7b1: Pull complete
77b694f83996: Pull complete
0f611256ec3a: Pull complete
4f25def12f23: Pull complete
Digest: sha256:9dee185c3b161cdfede1f5e35e8b56ebc9de88ed3a79526939701f3537a52324
Status: Downloaded newer image for tomcat:latest
docker.io/library/tomcat:latest
可以发现拉取的时候tomcat一共有十层
docker 将所有镜像层堆叠合并,对外提供统一的视图
共享镜像层
docker pull tomcat
-
假设一共有十层 ,当发现本地存在dc120c3e0290这个镜像层时 就不会再次拉取 而是直接使用本地的镜像层
-
当不再需要某个镜像的时候,可以通过 docker image rm 命令从 Docker 主机删除该镜像。其中,rm 是 remove 的缩写。删除操作会在当前主机上删除该镜像以及相关的镜像层。这意味着无法通过 docker image ls 命令看到删除后的镜像,并且对应的包含镜像层数据的目录会被删除。但是,如果某个镜像层被多个镜像共享,那只有当全部依赖该镜像层的镜像都被删除后,该镜像层才会被删除。
容器生成镜像
当通过commit命令 使用当前容器生成镜像时,新的镜像就会多出一层 是可写容器生成的层数