如何验证远程Docker容器是否已更改?

时间:2019-03-18 16:43:08

标签: docker

我要使用的是: private void Build() { var container = new Container(); var serviceLocatorProvider = new StructureMapServiceLocator(container); ServiceLocator.SetLocatorProvider(() => serviceLocatorProvider); Locator = serviceLocatorProvider; // Apply the registry to the container container.Configure(x => { // register the container itself x.For<IServiceLocator>().Use(serviceLocatorProvider); x.AddRegistry<Domain.Registry>(); }); }

如何验证远程标记已更改?所以我可以:

docker pull <someimage>:<sometag>

这在使用标记为{if [ CHECK_IF_REMOTE_TAG_IMAGE_HAS_CHANGED ]; then docker rm <someimage>:<sometag> docker pull <someimage>:<sometag> fi 的容器时会派上用场。

2 个答案:

答案 0 :(得分:2)

当两个图像都标记有 version latest时,您可以使用container-diff比较容器图像。

答案 1 :(得分:0)

docker inspect -f {{.Id}} mongo:latest

为您提供随每个构建而变化的映像的ID [猜测docker构建是用于更改/修改映像的对象]-我不确定使用docker save时的行为。示例Dockerfile将镜像mongo:latest和新标签更改为mongo:test1

FROM mongo:latest
COPY ./test.txt /tmp

$> docker build -t mongo:test1 .

用于比较mongo:latest和mongo:test1的Shell脚本

ID1=$(docker inspect -f {{.Id}} mongo:latest)
ID2=$(docker inspect -f {{.Id}} mongo:test1)

if [ "$ID1" == "$ID2" ]
then
    echo "Same Image"
else
    echo "Image changed"
fi

输出

图片已更改