使用没有docker注册表的ansible-container部署docker镜像

问题描述 投票:1回答:1

我正在尝试使用ansible-container来创建和部署我的docker应用程序,但我无法让它工作。

我有一个远程服务器,我可以通过ansible配置。在我的本地机器上,我使用ansible-container来构建一个工作正常的docker镜像。运行ansible-container build后,我在本地机器上有docker镜像。但是,我没有下一步的工作。我的目标是将docker镜像从本地计算机推送到远程服务器,然后根据远程服务器上的此映像创建并启动docker容器。

我没有使用docker注册表。因此我正在使用--local-images选项用于ansible-container deploy命令,这可以防止它将图像推送到注册表(至少这是我从docs中理解的)。这个命令成功创建了一个ansible playbook,但是当我执行这个playbook时,它仍然试图从docker.io注册表中提取图像,当然在那里找不到它。

我认为缺少的步骤是将本地docker镜像推送到远程服务器,但我找不到这个用例的ansible-container文档中的任何提示。我也看过ansible docker_image module,但据我了解,这也集中在使用注册表。

如何使用ansible将docker镜像部署到远程服务器?

docker ansible ansible-container
1个回答
2
投票

如果您没有docker注册表,您需要做的是将图像保存到tarball中,然后将其上传到计算机,然后将tarball导回到docker镜像中。

在本地计算机上将图像保存为tarball:

docker save --output image.tar <image>

将tar上载到目标计算机后,可以使用以下命令将其重新导入docker镜像:

docker import image.tar <image-name>

从那以后,图像将在机器上,并且docker不会尝试从注册表中提取。

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