如何知道容器正在运行哪个图像版本?

时间:2019-01-28 19:49:48

标签: docker

假设我有一个正在运行的容器:

CONTAINER ID   IMAGE            COMMAND   CREATED       STATUS       PORTS                  NAMES
59f00e5c96d6   me/myapp:latest  "bash"    9 hours ago   Up 7 hours   127.0.0.1:80->80/tcp   bashapp

假设我发现了一个神秘的docker映像存档文件me-myapp-latest.tar.gz。我想知道,相对于用于启动正在运行的容器的映像,该文件是否包含映像的旧版本或更新版本。

我使用docker load --input me-myapp-latest.tar.gz将存档加载到docker中。 docker images现在显示:

REPOSITORY   TAG      IMAGE ID        CREATED           SIZE
me/myapp     latest   fe22fc800843    12 hours ago      123MB

这不能表示me/myapp:latest所示的docker imagesdocker ps -a所示的相同。它们都被命名为me/myapp:latest,但是它们可以不同。

如何确定图像是否相同或不相同,哪个是较新的,哪个是较旧的?

1 个答案:

答案 0 :(得分:0)

通常,您可以检查容器的imageId是否与图像之一匹配:

docker inspect -f '{{ .Image }}' bashapp

由于您将无法删除仍在使用的图像,因此应该可以使用以下命令找到容器的图像:

docker images | grep $(docker inspect -f '{{ .Image }}' bashapp | cut -d ":" -f 2 | head -c 12)

如果您知道使用了哪个图像,则还应该能够知道该图像是否较新。