使用无docker注册表的ansible容器部署docker映像

使用无docker注册表的ansible容器部署docker映像,docker,ansible,ansible-container,Docker,Ansible,Ansible Container,我正在尝试使用ansible容器创建和部署docker应用程序,但无法使其正常工作 我有一个远程服务器,可以通过ansible进行配置。在我的本地机器上,我正在使用ansible容器构建一个docker映像,该映像运行良好。运行ansible container build后,我在本地机器上拥有docker映像。 然而,我没有下一步的工作。我的目标是将docker映像从本地计算机推送到远程服务器,然后在远程服务器上基于此映像创建并启动docker容器 我没有使用docker注册表。因此,我为an

我正在尝试使用ansible容器创建和部署docker应用程序,但无法使其正常工作

我有一个远程服务器,可以通过ansible进行配置。在我的本地机器上,我正在使用ansible容器构建一个docker映像,该映像运行良好。运行
ansible container build
后,我在本地机器上拥有docker映像。 然而,我没有下一步的工作。我的目标是将docker映像从本地计算机推送到远程服务器,然后在远程服务器上基于此映像创建并启动docker容器

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

我认为缺少的步骤是将本地docker映像推送到远程服务器,但是我在ansible容器文档中找不到任何关于这个用例的提示。我也看过,但据我所知,这也是围绕着使用注册表


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

如果没有docker注册表,则需要将映像保存到tarball中,然后将其上载到计算机,然后将tarball导入回docker映像

在本地计算机上,将图像保存到tarball中:

docker save --output image.tar <image>
docker保存--output image.tar
将tar上载到目标计算机后,可以使用以下方法将其导入回docker映像:

docker import image.tar <image-name>
docker import image.tar
从那时起,图像将在机器上,docker将不会尝试从注册表中提取