每个演讲机会都是一堂学习课,因此是一个新的分享机会。 该博客将解决过去几天困扰我的问题之一。 它是关于下载后如何显示Docker映像的不同层及其大小的信息。
今天上午,我应邀在Peru JUG上谈论了Java开发人员的Docker。 录音现在可用:
实际内容从5:27开始。
现在解决这个问题。
每个Docker映像均由一系列层组成。 这是docs.docker.com的报价:
每个图像由一系列图层组成。 Docker利用联合文件系统将这些层组合成一个映像。 联合文件系统允许透明文件覆盖独立文件系统(称为分支)的文件和目录,从而形成单个一致的文件系统。
可以使用docker images
轻松查看图像的确切大小:
docker images couchbase
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
couchbase latest 45abdd57689a 3 weeks ago 372 MB
显示不同图层及其大小的命令是docker history
:
docker history couchbase
IMAGE CREATED CREATED BY SIZE COMMENT
45abdd57689a 3 weeks ago /bin/sh -c #(nop) VOLUME [/opt/couchbase/var] 0 B
dd8c5611343d 3 weeks ago /bin/sh -c #(nop) EXPOSE 11207/tcp 11210/tcp 0 B
30852bbad62b 3 weeks ago /bin/sh -c #(nop) CMD ["couchbase-server"] 0 B
5537747ea12f 3 weeks ago /bin/sh -c #(nop) ENTRYPOINT &{["/entrypoint. 0 B
e8a83a5448df 3 weeks ago /bin/sh -c #(nop) COPY file:cbb44c9c65b64a9dc 182 B
18165b90fefa 3 weeks ago /bin/sh -c #(nop) COPY file:34e32c52f0895191f 389 B
5f37b8bdc5a6 3 weeks ago /bin/sh -c wget -N $CB_RELEASE_URL/$CB_VERSIO 212.1 MB
1a8da511d01b 3 weeks ago /bin/sh -c groupadd -g 1000 couchbase && user 328.7 kB
d9b2222c39b4 3 weeks ago /bin/sh -c #(nop) ENV CB_VERSION=4.0.0 CB_REL 0 B
815f08b3c781 3 weeks ago /bin/sh -c apt-get update && apt-get inst 23.57 MB
fc38f156c0ea 3 weeks ago /bin/sh -c #(nop) MAINTAINER Couchbase Docker 0 B
2a7a952931ec 3 weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0 B
10f1b5844a9c 3 weeks ago /bin/sh -c sed -i 's/^#\s*\(deb.*universe\)$/ 1.911 kB
23c388b926b6 3 weeks ago /bin/sh -c echo '#!/bin/sh' > /usr/sbin/polic 156.2 kB
b45376f323f5 3 weeks ago /bin/sh -c #(nop) ADD file:4a9e089e81d6581a54 135.9 MB
此命令显示不同的图层,用于每个图层的命令以及每个图像的确切大小。
该映像的相应Dockerfile位于github.com/couchbase/docker/blob/master/enterprise/couchbase-server/4.0.0/Dockerfile 。
现在,我可以将Dockerfile与确切大小进行比较,并轻松找到最大的图像层。 例如,此Couchbase图像中的最大贡献者如下所示:
- 来自Dockerfile 12.04的Ubuntu是135.9 MB
- 来自Dockerfile的apt-get导致另外23.57 MB
- Couchbase服务器为212 MB
可以将--no-trunc
指定为history
的附加CLI选项,以显示为构建层而执行的完整命令。
- 与往常一样,最新的幻灯片可在github.com/javaee-samples/docker-java/tree/master/slides上找到 。
翻译自: https://www.javacodegeeks.com/2015/12/show-layers-docker-image.html