如何访问历史记录 Docker '<missing>'映像



昨晚对我的代码做了很多更改后,我制作了一个新的图像,然后我发现有问题。虽然代码回滚非常复杂,但我建议所有最终用户应用程序都使用以前的映像,而不是docker文件中的latest版本。

问题是,所有的历史图像都显示为<missing>,与两年前的图像相同。那么,我有可能识别出那个,它的最后一次修改是在两年前,这样我就可以为所有最终用户制作一个标签吗?

谢谢。

IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
c40bfd5de465        14 hours ago        /bin/sh -c #(nop)  CMD ["sh" "-c" "./docker-…   0B                  
<missing>           14 hours ago        /bin/sh -c #(nop)  EXPOSE 18080/tcp             0B                  
<missing>           14 hours ago        /bin/sh -c chmod a+x $AUTO_RUN_DIR/$VKERSERV…   6.74kB              
<missing>           14 hours ago        /bin/sh -c #(nop) COPY file:1b1e438b24742cd0…   6.74kB              
<missing>           14 hours ago        /bin/sh -c #(nop) COPY file:5d809f1661bd3bdb…   3.25kB              
<missing>           14 hours ago        /bin/sh -c #(nop) COPY file:7208a6bafb3a6a01…   2.85kB              
<missing>           14 hours ago        /bin/sh -c #(nop) COPY file:64bca67554c00d6c…   3.03kB              
<missing>           14 hours ago        /bin/sh -c mkdir -p /runtime/temp/vkmq/         0B                  
<missing>           14 hours ago        /bin/sh -c mkdir -p /root/vkds/vkredis-api/v…   0B                  
<missing>           14 hours ago        /bin/sh -c mkdir -p $WORK_PATH                  0B                  
<missing>           14 hours ago        /bin/sh -c #(nop)  ENV VKREDIS_APPNAME= VKRE…   0B                  
<missing>           14 hours ago        /bin/sh -c #(nop)  ENV INIT_MYSQL=init_mysql…   0B                  
<missing>           14 hours ago        /bin/sh -c #(nop)  ENV VKERSERVER_START=vkse…   0B                  
<missing>           14 hours ago        /bin/sh -c #(nop)  ENV AUTO_RUN_DIR=/docker-…   0B                  
<missing>           14 hours ago        /bin/sh -c #(nop)  ENV WORK_PATH=/usr/local/…   0B                  
<missing>           14 hours ago        /bin/sh -c #(nop) ADD file:57dbba438276944df…   118MB               
<missing>           2 years ago         /bin/sh -c #(nop) ADD file:346d4cb58fff5e7b9…   2.02kB              
<missing>           3 years ago         /bin/sh -c #(nop)  CMD ["mysqld"]               0B                  
<missing>           3 years ago         /bin/sh -c #(nop)  EXPOSE 3306/tcp              0B                  
<missing>           3 years ago         /bin/sh -c chmod 777 /var/run/mysqld            0B                  
<missing>           3 years ago         /bin/sh -c mkdir /var/run/mysqld                0B                  
<missing>           3 years ago         /bin/sh -c pip install --upgrade awsebcli       11.4MB              
<missing>           3 years ago         /bin/sh -c pip install --upgrade awscli         38.2MB              
<missing>           3 years ago         /bin/sh -c apt-get -q -y install python-pip     97.5MB              
<missing>           3 years ago         /bin/sh -c apt-get -q -y install grunt          6.12MB              
<missing>           3 years ago         /bin/sh -c apt-get -q -y install npm            238MB               
<missing>           3 years ago         /bin/sh -c apt-get -q -y install mysql-server   359MB               
<missing>           3 years ago         /bin/sh -c apt-get update                       10.2MB

以下是最终用户的docker-compose.yml:中的一个示例组件

XXX-server:
image: code.xxx.com.cn:4567/redis/redis-server:latest
container_name: service-redis

docker history输出显示了制作图像的步骤;它没有显示图像的过去版本。如果您的图像是由FROM或其他图像构建的,则docker history输出也包括其步骤。如果我要从历史中猜测,你有一个相当旧的基本映像(包括一些命令行工具Node,还有一个MySQL守护进程(,一个稍微新一点的中间映像(COPY中的某个文件(,然后你当前的Dockerfile就是FROM

在当前Docker上;图像";列显示<missing>,您不能返回到作为图像的中间层。(在非常旧的Docker版本上,这通常是可能的。(

不过,使用Docker镜像来支持您所描述的那种回滚是很常见的。不要将您的图像标记为latest;相反,使用日期戳或源代码管理提交ID作为图像标记。

image: code.xxx.com.cn:4567/redis/redis-server:20201113

然后,如果你发现今天的构建不起作用,你可以很容易地将其切换回昨天的构建。

您也可以在docker-compose.yml文件中使用变量替换,让特定的图像版本作为环境变量传入:

image: code.xxx.com.cn:4567/redis/redis-server:${REDIS_TAG:-latest}
REDIS_TAG=20201113 docker-compose up -d

相关内容

最新更新