通过docker history命令进行分析,镜像是一种其他镜像+文件+命令的组合。
这些镜像的加载、文件导入创建、命令是存在顺序关系的,所以也引出了层的概念。
[root@localhost ~]# docker history postgres
IMAGE CREATED CREATED BY SIZE COMMENT
b97bae343e06 20 months ago /bin/sh -c #(nop) CMD ["postgres"] 0B
<missing> 20 months ago /bin/sh -c #(nop) EXPOSE 5432 0B
<missing> 20 months ago /bin/sh -c #(nop) ENTRYPOINT ["docker-entry… 0B
<missing> 20 months ago /bin/sh -c ln -s usr/local/bin/docker-entryp… 34B
<missing> 20 months ago /bin/sh -c #(nop) COPY file:bf774aaf2659f830… 10.9kB
<missing> 20 months ago /bin/sh -c #(nop) VOLUME [/var/lib/postgres… 0B
<missing> 20 months ago /bin/sh -c mkdir -p "$PGDATA" && chown -R po… 0B
<missing> 20 months ago /bin/sh -c #(nop) ENV PGDATA=/var/lib/postg… 0B
<missing> 20 months ago /bin/sh -c #(nop) ENV PATH=/usr/local/sbin:… 0B
<missing> 20 months ago /bin/sh -c mkdir -p /var/run/postgresql && c… 0B
<missing> 20 months ago /bin/sh -c set -eux; dpkg-divert --add --re… 53.6kB
<missing> 20 months ago /bin/sh -c set -ex; export PYTHONDONTWRITE… 204MB
<missing> 20 months ago /bin/sh -c #(nop) ENV PG_VERSION=12.3-1.pgd… 0B
<missing> 20 months ago /bin/sh -c #(nop) ENV PG_MAJOR=12 0B
<missing> 20 months ago /bin/sh -c set -ex; key='B97B0AFCAA1A47F044… 2.88kB
<missing> 20 months ago /bin/sh -c mkdir /docker-entrypoint-initdb.d 0B
<missing> 20 months ago /bin/sh -c set -eux; apt-get update; apt-g… 1.39MB
<missing> 20 months ago /bin/sh -c #(nop) ENV LANG=en_US.utf8 0B
<missing> 20 months ago /bin/sh -c set -eux; if [ -f /etc/dpkg/dpkg… 24.9MB
<missing> 20 months ago /bin/sh -c set -eux; savedAptMark="$(apt-ma… 4.17MB
<missing> 20 months ago /bin/sh -c #(nop) ENV GOSU_VERSION=1.12 0B
<missing> 20 months ago /bin/sh -c set -eux; groupadd -r postgres -… 329kB
<missing> 20 months ago /bin/sh -c set -ex; if ! command -v gpg > /… 9.34MB
<missing> 20 months ago /bin/sh -c #(nop) CMD ["bash"] 0B
<missing> 20 months ago /bin/sh -c #(nop) ADD file:4d35f6c8bbbe6801c… 69.2MB
下面命令可以作为Dockerfile创建镜像的第一行,下面使用的Centos7作为发行版。
FROM centos:7
Docker依赖于Linux内核,实际下载的centos:7 镜像体积非常小,因为最后使用的还是宿主机内核。
各层中的命令对Base镜像进行改造,以满足各种功能。例如镜像增加httpd组件。
RUN yum install -y httpd
手机扫一扫
移动阅读更方便
你可能感兴趣的文章