在没有 docker 注册表的情况下使用 ansible-container 部署 docker 图像
deploy docker image with ansible-container without a docker registy
我正在尝试使用 ansible-container 来创建和部署我的 docker 应用程序,但我无法让它工作。
我有一个可以通过ansible配置的远程服务器。在我的本地机器上,我正在使用 ansible-container 构建一个工作正常的 docker 图像。在 运行 ansible-container build
之后,我的本地计算机上有 docker 图像。
但是,我没有下一步工作。我的目标是将 docker 图像从我的本地计算机推送到远程服务器,然后在远程服务器上基于此图像创建并启动一个 docker 容器。
我没有使用 docker 注册表。因此,我对 ansible-container deploy
命令使用 --local-images
选项,以防止将图像推送到注册表(至少这是我从 docs 中了解到的)。此命令成功创建了一个 ansible playbook,但是当我执行此 playbook 时,它仍然尝试从 docker.io 注册表中提取图像,当然无法在那里找到它。
我认为缺少的步骤是将本地 docker 图像推送到远程服务器,但我在这个用例的 ansible-container 文档中找不到任何提示。我也看过 ansible docker_image module 但据我了解,这也以使用注册表为中心。
如何使用 ansible 将 docker 图像部署到远程服务器?
如果您没有docker注册表,您需要做的是将图像保存到tar球中,然后将其上传到机器,然后导入tar球变回 docker 图像。
在您的本地计算机上将图像保存到 tar球中:
docker save --output image.tar <image>
将 tar 上传到 target 机器后,您可以使用以下方法将其导回 docker 图像:
docker import image.tar <image-name>
从那时起,映像将在机器上并且 docker 不会尝试从注册表中提取。
我正在尝试使用 ansible-container 来创建和部署我的 docker 应用程序,但我无法让它工作。
我有一个可以通过ansible配置的远程服务器。在我的本地机器上,我正在使用 ansible-container 构建一个工作正常的 docker 图像。在 运行 ansible-container build
之后,我的本地计算机上有 docker 图像。
但是,我没有下一步工作。我的目标是将 docker 图像从我的本地计算机推送到远程服务器,然后在远程服务器上基于此图像创建并启动一个 docker 容器。
我没有使用 docker 注册表。因此,我对 ansible-container deploy
命令使用 --local-images
选项,以防止将图像推送到注册表(至少这是我从 docs 中了解到的)。此命令成功创建了一个 ansible playbook,但是当我执行此 playbook 时,它仍然尝试从 docker.io 注册表中提取图像,当然无法在那里找到它。
我认为缺少的步骤是将本地 docker 图像推送到远程服务器,但我在这个用例的 ansible-container 文档中找不到任何提示。我也看过 ansible docker_image module 但据我了解,这也以使用注册表为中心。
如何使用 ansible 将 docker 图像部署到远程服务器?
如果您没有docker注册表,您需要做的是将图像保存到tar球中,然后将其上传到机器,然后导入tar球变回 docker 图像。
在您的本地计算机上将图像保存到 tar球中:
docker save --output image.tar <image>
将 tar 上传到 target 机器后,您可以使用以下方法将其导回 docker 图像:
docker import image.tar <image-name>
从那时起,映像将在机器上并且 docker 不会尝试从注册表中提取。