繁体   English   中英

Docker 映像/容器未更新

[英]Docker image/container not updating

我有一个 docker 镜像,叫它 dockerimage/test。 每次我更新它时,我都会增加一个标签,所以 dockerimage/test:1、dockerimage/test:2 等等。

当我使用 docker 在本地机器上拉取并运行映像时,效果很好,我可以看到我对映像所做的更改。 但是,我也有一个安装了 docker 的虚拟机,当我在该虚拟机上拉取镜像并运行它时,它只会显示网站的旧版本(即,镜像尚未更新,即使 docker 说它已下载)较新的版本)。

我想知道我是否在 VM 上错误标记了一个映像,即它运行了错误的映像,所以我尝试删除 VM 上的所有映像,创建一个新映像(即 dockerimage/test:3),然后运行它。 同样,在我的本地机器上工作正常,只是在我的 VM 上显示旧版本。

我尝试清除浏览器缓存、编辑文件、创建新注册表、重新启动机器,但没有任何区别。

在这一点上,我只想删除与此图像/容器相关的所有内容,并获得一个新版本。 但看起来 docker 正在存储一些东西,所以我不能。

我知道 docker 在处理图像方面是“聪明的”——它可以识别重复的图像、文件等,但无论如何都可以强制删除图像并强制重新下载图像,因此它会重新下载所有文件?

从这里描述的问题来看,您似乎没有使用新图像创建新容器。

所以只要升级镜像就run一个新的容器。 您始终可以自动执行此过程。 我有持续部署管道( bitbucket,ansible jenkins,ansiblejenkins,ansible )为我做这件事。

我认为您应该尝试使用“--no-cache”来拉取 docker 镜像。

我终于找到了这个bugg的答案,很长一段时间我以为是docker的问题,但事实并非如此!

问题是你的浏览器! 它保留了网站的缓存,因此即使您更新了 docker 图像,浏览器也不会立即更新它。 您需要等待 10 分钟,然后刷新浏览器或尝试打开一个新浏览器。

为了证明我的观点,尝试通过在主页中写入 hello world 来更新图像,然后以私有模式打开浏览器,您将立即看到更改,因为私有模式不保留缓存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM