Docker运行旧容器,而不是我要拉的新容器(AWS)

问题描述 投票:0回答:2

我最近使用Docker将Springboot应用程序部署到AWS。

我为更新图片/容器而疯狂。我尝试删除所有内容,已使用和未使用的容器,图像,标签等,然后再次推送所有内容。 Docker系统剪枝,docker rm,docker rmi,也使用其他帐户...它仍在运行该项目的旧版本。

都表明在服务器级别发生了一些事情。我正在使用PuTTY。

非常感谢您的帮助。

image amazon-web-services docker containers putty
2个回答
0
投票

您所说的旧集装箱是什么意思?是您从某个版本控制中进行的一些更改,然后没有在容器上更新?还是只是docker restart container I'd


0
投票

这里有很多要打包的东西,因此,如果您可以提供更多信息,那将很好。但这是一个可能的共同点。

[如果您使用的是任何AWS服务(EKS,Farget,ECS),则这些仅基于您为其提供的docker映像。因此,如果您的图片未正确更新,它们将不会更新。

但是docker run也会发生相同的情况。如果您继续指向同一张图片(或该图片在概念上未更改),则不会有任何更改。

所以我怀疑问题出在Docker还是AWS内。

最有可能

  1. 您不会随着每次更改而重新构建spring应用程序二进制文件

  2. 您的Dockerfile输入错误的二进制文件

  3. 如果您使用的是图像托管服务,例如ECR或Nexus,则需要确保图像名称指向正确的image:tag组合。如果您更新映像,则应为其赋予唯一的标签,然后再给Docker / AWS引用的该标签的映像

构建图像后,可以使用docker export <container_id> | tar -xf - <location_of_binary_in_image_filesystem>验证是否复制了正确的二进制文件>

这将提取二进制文件。然后,您可以在本地运行它以测试它是否是您想要的。

您可以使用docker export <container_id> | tar -tf - | less查看整个文件系统>

© www.soinside.com 2019 - 2024. All rights reserved.