如何查看Docker镜像的dockerfile

了解Dockerfile

Dockerfile 是一个文本文件,其中包含我们为了构建 Docker 镜像而手动执行的所有命令。
Docker 可以从 Dockerfile 中读取指令来自动构建镜像。我们可以使用 docker build 命令来创建一个自动构建。

命令

基础镜像 -> 启动用户 -> 挂载的目录 -> 启动后运行的命令 -> 暴露的端口

使用 FROM 指令指定一个基础镜像,后续指令将在此镜像的基础上运行。
指定一个用户,后续的 RUN,CMD 以及 ENTRYPOINT 指令都会使用该用户去执行,但是该用户必须提前存在。
使用 WORKDIR 指定工作目录,对于 RUN,CMD,COPY,ADD 指令将会在指定的工作目录中去执行。也可以理解为命令执行时的当前目录。
RUN ,使用 shell 去执行指定的命令 command,一般默认的 shell 为 /bin/sh -c。/ RUN [“executable”, “param1”, “param2”, …],使用可执行的文件或程序 executable,给予相应的参数 param。
COPY 和 ADD 都用于将文件,目录等复制到镜像中。COPY 和 ADD 的不同之处在于,ADD 可以添加远程路径的文件,并且 为可识别的压缩格式,如 gzip 或 tar 归档文件等,ADD 会自动将其解压缩为目录。
ENV 指令用于设置环境变量。
VOLUME 指令将会创建指定的挂载目录,在容器运行时,将创建相应的匿名卷。
EXPOSE 指定在容器运行时监听指定的网络端口,它与 docker run 命令的 -p 参数不一样,并不实际映射端口,只是将该端口暴露出来,允许外部或其它的容器进行访问。

要将容器端口暴露出来,需要在 dcoker run 命令中使用 -p 或者 --publish 参数。如果采用 -P 随机映射端口的方式,Docker 会将在 DockerFile 中声明的所有 EXPOSE 的端口随机映射。

Docker Dockerfile

查看信息

docker history mysql:5.7
IMAGE          CREATED       CREATED BY                                      SIZE      COMMENT
459651132a11   9 days ago    /bin/sh -c #(nop)  CMD ["mysqld"]               0B
<missing>      9 days ago    /bin/sh -c #(nop)  EXPOSE 3306 33060            0B
<missing>      9 days ago    /bin/sh -c #(nop)  ENTRYPOINT ["docker-entry…   0B
<missing>      9 days ago    /bin/sh -c ln -s usr/local/bin/docker-entryp…   34B
<missing>      9 days ago    /bin/sh -c #(nop) COPY file:d27cf504fa76fb5a…   13.6kB
<missing>      9 days ago    /bin/sh -c #(nop)  VOLUME [/var/lib/mysql]      0B
<missing>      9 days ago    /bin/sh -c set -eux;  yum install -y --setop…   201MB
<missing>      9 days ago    /bin/sh -c #(nop)  ENV MYSQL_SHELL_VERSION=8…   0B
<missing>      9 days ago    /bin/sh -c set -eu;  . /etc/os-release;  {  …   215B
<missing>      9 days ago    /bin/sh -c set -eux;  yum install -y --setop…   79.2MB
<missing>      9 days ago    /bin/sh -c set -eu;  . /etc/os-release;  {  …   225B
<missing>      9 days ago    /bin/sh -c #(nop)  ENV MYSQL_VERSION=5.7.38-…   0B
<missing>      9 days ago    /bin/sh -c #(nop)  ENV MYSQL_MAJOR=5.7          0B
<missing>      9 days ago    /bin/sh -c set -eux;  key='859BE8D7C586F5384…   3.21kB
<missing>      9 days ago    /bin/sh -c set -eux;  yum install -y --setop…   13.6MB
<missing>      9 days ago    /bin/sh -c set -eux;  arch="$(uname -m)";  c…   2.31MB
<missing>      9 days ago    /bin/sh -c #(nop)  ENV GOSU_VERSION=1.14        0B
<missing>      9 days ago    /bin/sh -c set -eux;  groupadd --system --gi…   2.72kB
<missing>      2 weeks ago   /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B
<missing>      2 weeks ago   /bin/sh -c #(nop) ADD file:50fb7d83a9d57e5a0…   133MB
docker history mysql:5.7 --no-trunc
IMAGE                                                                     CREATED       CREATED BY                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               SIZE      COMMENT
sha256:459651132a1115239f7370765464a0737d028ae7e74c68360740d81751fbae7e   9 days ago    /bin/sh -c #(nop)  CMD ["mysqld"]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        0B
<missing>                                                                 9 days ago    /bin/sh -c #(nop)  EXPOSE 3306 33060                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     0B
<missing>                                                                 9 days ago    /bin/sh -c #(nop)  ENTRYPOINT ["docker-entrypoint.sh"]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   0B
<missing>                                                                 9 days ago    /bin/sh -c ln -s usr/local/bin/docker-entrypoint.sh /entrypoint.sh # backwards compat                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    34B
<missing>                                                                 9 days ago    /bin/sh -c #(nop) COPY file:d27cf504fa76fb5a4038020a01eaaf52723b17b751566119de311adacb043752 in /usr/local/bin/                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          13.6kB
<missing>                                                                 9 days ago    /bin/sh -c #(nop)  VOLUME [/var/lib/mysql]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               0B
<missing>                                                                 9 days ago    /bin/sh -c set -eux;  yum install -y --setopt=skip_missing_names_on_install=False "mysql-shell-$MYSQL_SHELL_VERSION";  yum clean all;   mysqlsh --version                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                201MB
<missing>                                                                 9 days ago    /bin/sh -c #(nop)  ENV MYSQL_SHELL_VERSION=8.0.29-1.el7                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  0B
<missing>                                                                 9 days ago    /bin/sh -c set -eu;  . /etc/os-release;  {   echo '[mysql-tools-community]';   echo 'name=MySQL Tools Community';   echo "baseurl=https://repo.mysql.com/yum/mysql-tools-community/el/${VERSION_ID%%[.-]*}/\$basearch/";   echo 'enabled=1';   echo 'gpgcheck=1';   echo 'gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql';   echo 'module_hotfixes=true';  } | tee /etc/yum.repos.d/mysql-community-tools.repo                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         215B
<missing>                                                                 9 days ago    /bin/sh -c set -eux;  yum install -y --setopt=skip_missing_names_on_install=False "mysql-community-server-minimal-$MYSQL_VERSION";  yum clean all;  grep -F 'socket=/var/lib/mysql/mysql.sock' /etc/my.cnf;  sed -i 's!^socket=.*!socket=/var/run/mysqld/mysqld.sock!' /etc/my.cnf;  grep -F 'socket=/var/run/mysqld/mysqld.sock' /etc/my.cnf;  { echo '[client]'; echo 'socket=/var/run/mysqld/mysqld.sock'; } >> /etc/my.cnf;   ! grep -F '!includedir' /etc/my.cnf;  { echo; echo '!includedir /etc/mysql/conf.d/'; } >> /etc/my.cnf;  mkdir -p /etc/mysql/conf.d;  { echo '!includedir /etc/mysql/mysql.conf.d/'; } >> /etc/my.cnf;  mkdir -p /etc/mysql/mysql.conf.d;   find /etc/my.cnf /etc/mysql/ -name '*.cnf' -print0   | xargs -0 grep -lZE '^(bind-address|log)'   | xargs -rt -0 sed -Ei 's/^(bind-address|log)/#&/';   mkdir -p /var/lib/mysql /var/run/mysqld;  chown mysql:mysql /var/lib/mysql /var/run/mysqld;  chmod 1777 /var/lib/mysql /var/run/mysqld;   mkdir /docker-entrypoint-initdb.d;   mysqld --version;  mysql --version   79.2MB
<missing>                                                                 9 days ago    /bin/sh -c set -eu;  . /etc/os-release;  {   echo '[mysql5.7-server-minimal]';   echo 'name=MySQL 5.7 Server Minimal';   echo 'enabled=1';   echo "baseurl=https://repo.mysql.com/yum/mysql-5.7-community/docker/el/${VERSION_ID%%[.-]*}/\$basearch/";   echo 'gpgcheck=1';   echo 'gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql';   echo 'module_hotfixes=true';  } | tee /etc/yum.repos.d/mysql-community-minimal.repo                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             225B
<missing>                                                                 9 days ago    /bin/sh -c #(nop)  ENV MYSQL_VERSION=5.7.38-1.el7                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        0B
<missing>                                                                 9 days ago    /bin/sh -c #(nop)  ENV MYSQL_MAJOR=5.7                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   0B
<missing>                                                                 9 days ago    /bin/sh -c set -eux;  key='859BE8D7C586F538430B19C2467B942D3A79BD29';  export GNUPGHOME="$(mktemp -d)";  gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key";  gpg --batch --export --armor "$key" > /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql;  rm -rf "$GNUPGHOME"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                3.21kB
<missing>                                                                 9 days ago    /bin/sh -c set -eux;  yum install -y --setopt=skip_missing_names_on_install=False oracle-epel-release-el7;  yum install -y --setopt=skip_missing_names_on_install=False   bzip2   gzip   openssl   xz   zstd  ;  yum clean all                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           13.6MB
<missing>                                                                 9 days ago    /bin/sh -c set -eux;  arch="$(uname -m)";  case "$arch" in   aarch64) gosuArch='arm64' ;;   x86_64) gosuArch='amd64' ;;   *) echo >&2 "error: unsupported architecture: '$arch'"; exit 1 ;;  esac;  curl -fL -o /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$gosuArch.asc";  curl -fL -o /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$gosuArch";  export GNUPGHOME="$(mktemp -d)";  gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4;  gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu;  rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc;  chmod +x /usr/local/bin/gosu;  gosu --version;  gosu nobody true                                                                                                                                                                                                                                                                               2.31MB
<missing>                                                                 9 days ago    /bin/sh -c #(nop)  ENV GOSU_VERSION=1.14                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 0B
<missing>                                                                 9 days ago    /bin/sh -c set -eux;  groupadd --system --gid 999 mysql;  useradd --system --uid 999 --gid 999 --home-dir /var/lib/mysql --no-create-home mysql                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          2.72kB
<missing>                                                                 2 weeks ago   /bin/sh -c #(nop)  CMD ["/bin/bash"]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     0B
<missing>                                                                 2 weeks ago   /bin/sh -c #(nop) ADD file:50fb7d83a9d57e5a0a6af5e5daf27e464ae8a28c196ce6bad6c254dfc1774cdd in /                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         133MB
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值