1. 前言

我们知道了根据dockerfile来制作镜像,如果给你一个现成的镜像,你能逆向查看出dockerfile吗?

否则,你怎么知道该镜像使用的是CMD还是ENTRYPOINT ,使用的是shell格式还是CMD格式?由于格式决定了docker内部如何产生PID1进程,因此有必要逆向一下。

2.步骤

对于dockerfile,我们首先要有基本的了解,dockerfile有自己的语法,基于一个基础的镜像,然后在镜像中定义安装的软件,启动的用户,暴露的端口,挂载的目录,以及容器启动后运行的命令:
在这里插入图片描述
知道了镜像构建的方法,那么对于一个已经下载到本地的镜像我们怎么去查看他构建时候的dockerfile呢?使用docker images 查看本地所有镜像:
在这里插入图片描述
对于本地的镜像,我们使用docker history [image_name]:[tag] 命令来查看它的构建命令,如图可以看到运行的启动脚本,暴露的端口等信息。还可以加 --no-trunc查看完整命令:

docker history --no-trunc xxx

在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐