如果拉新映像,如何保留docker映像

时间:2020-02-09 16:07:27

标签: docker

我正在使用一些从注册表中提取的docker映像:

docker pull registry.example.com/project/backend:latest
docker pull registry.example.com/project/frontend:latest

现在服务器注册表上有一个新版本。如果执行新的提取,则将覆盖当前图像。但是我需要保留当前的工作图像,以防最新的latest图像出现问题。

那么,如何为正在运行的backend:latestfrontend:latest创建备份?之后,我可以提取最新的latest图像,如果需要,可以使用旧的工作图像...

3 个答案:

答案 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的主要原因之一。