Ansible docker 模块缺少 CP 命令?

Ansible docker module missing CP command?

docker 客户端提供 cp 子命令,如 here 所述,这在需要将文件复制到容器中时非常方便(注意:这有点类似于图像构建中的 Dockerfile ADD 指令)。在 Docker 1.8 中,cp 命令甚至扩展了一点。

但是看了Ansible docker module documentation,好像少了这个?这是我的 2 个问题:

  1. 我是不是误解了 Ansible 文档?
  2. 如果 Ansible 缺少 cp 东西,有没有人找到解决方法?我可以想到使用 Ansible copy module 首先将文件传输到远程机器,然后 运行 本地 docker 客户端 cp,但理想情况下 Ansible 的 docker 模块会作为 docker 模块的一部分一次性完成此操作?

提前致谢。

  1. 你没有。 Ansible 的 docker 模块不支持从容器中复制文件或文件夹。
  2. 没有简单的方法可以做到这一点。我的意思是你需要一个黑客。在我的脑海中,您可以使用 docker cp 选项的“-”参数。

然而,从我的角度来看,如果您想将某些内容复制到容器中,您可能做错了什么。容器应该是短暂的。

您也可以使用同步命令~本link中提供的示例:

http://opensolitude.com/2015/05/26/building-docker-images-with-ansible.html

使用 ansible shell 模块帮助:

  - name: copy db dump to localhost
    ansible.builtin.shell: docker cp container:/tmp/dump.sql /tmp/dump.sql