我正在使用一些从注册表中提取的docker映像:
docker pull registry.example.com/project/backend:latest
docker pull registry.example.com/project/frontend:latest
现在服务器注册表上有一个新版本。如果执行新的提取,则将覆盖当前图像。但是我需要保留当前的工作图像,以防最新的latest
图像出现问题。
那么,如何为正在运行的backend:latest
和frontend:latest
创建备份?之后,我可以提取最新的latest
图像,如果需要,可以使用旧的工作图像...
答案 0 :(得分:1)
要将当前图像保留在本地环境中,可以使用docker标签
docker标签SOURCE_IMAGE [:TAG] TARGET_IMAGE [:TAG]
例如:
docker标签Registry.example.com/project/backend:latest Registry.example.com/project/backend:backup
然后,当您获取最新版本时,registry.example.com / project / backend:backup仍然存在
答案 1 :(得分:0)
拉出图像永远不会删除现有图像。但是,如果您具有相同名称的图像,则旧图像将变为未命名,并且必须通过其图像ID对其进行引用。
您现在已经看到了使用:latest
标签的弊端。这就是为什么最好通过维护者不会重新按下的特定版本标签来引用图像。
答案 2 :(得分:0)
首先,您不应该在生产环境中使用latest
。而是定义一个您确认可以正常工作的tag。
您应该编写Dockerfile并重复安装并创建本地映像,而不是在映像中执行任何操作来进行设置。这实际上是使用docker的主要原因之一。