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

时间:2017-12-22 15:44:40

标签: docker ansible ansible-container

我尝试使用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镜像部署到远程服务器?

1 个答案:

答案 0 :(得分:2)

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

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

docker save --output image.tar <image>

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

docker import image.tar <image-name>

从那时起,图像将出现在机器上,而docker将不会尝试从注册表中提取。

相关问题