You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Ansible实现两个Docker容器间的文件移动/复制

Ansible实现两个Docker容器间文件传输方案

全程不需要手动登录容器/宿主机操作,所有步骤通过Ansible playbook完成,不需要给容器额外装SSH等冗余服务,两种常用落地方式:

方案1:Ansible控制节点中转(通用场景,跨宿主机也可用)

依赖community.docker集合,先执行ansible-galaxy collection install community.docker安装即可,原理是通过Ansible的Docker连接插件直接和容器交互,先把文件从源容器拉到Ansible执行节点的临时缓存目录,再推送到目标容器。

路径配置规则

  • 从源容器取文件时,src填appOne容器内部的文件绝对路径,不要写宿主机路径,不要带容器名前缀
  • 往目标容器推文件时,dest填appTwo容器内部的目标存放绝对路径,目标目录不存在时模块会自动递归创建

Playbook示例

- name: 跨容器传输文件
  hosts: localhost
  gather_facts: false
  tasks:
    # 从appOne拉取文件
    - name: 提取appOne内生成的文件
      community.docker.docker_container_copy:
        container_name: appOne
        src: /path/inside/appOne/your_file  # 替换成appOne内实际文件路径,比如/app/output/result.json
        dest: /tmp/ansible_cache/your_file
        direction: from_container
        mode: '0644'

    # 推送到appTwo
    - name: 写入文件到appTwo
      community.docker.docker_container_copy:
        container_name: appTwo
        src: /tmp/ansible_cache/your_file
        dest: /path/inside/appTwo/your_file  # 替换成appTwo内实际目标路径,比如/app/input/result.json
        direction: to_container
        mode: '0644'

    # 清理临时缓存
    - name: 删除Ansible节点临时文件
      ansible.builtin.file:
        path: /tmp/ansible_cache/your_file
        state: absent

如果两个容器跑在远程宿主机上,只需要在任务参数里加api_version: auto和docker_host: 远程宿主机Docker连接地址即可,不需要改核心逻辑。

方案2:同宿主机直转(大文件场景无中转开销)

如果appOne和appTwo运行在同一台宿主机上,不需要把文件拉到Ansible控制节点,直接在宿主机层面通过docker cp流转,传输速度更快:

- name: 同宿主机容器间文件传输
  hosts: <你的容器所在宿主机的inventory主机标识>
  gather_facts: false
  tasks:
    - name: 从appOne导出文件到宿主机临时目录
      ansible.builtin.shell: docker cp appOne:/path/inside/appOne/your_file /tmp/host_temp_file
    - name: 从宿主机临时目录导入到appTwo
      ansible.builtin.shell: docker cp /tmp/host_temp_file appTwo:/path/inside/appTwo/your_file
    - name: 清理宿主机临时文件
      ansible.builtin.file:
        path: /tmp/host_temp_file
        state: absent

注意:不要尝试直接在两个容器间配置scp/rsync传输,这类方案需要提前在两个Python 3.8容器内安装SSH服务、配置免密登录,引入不必要的运行时依赖,生产环境不推荐使用。

内容的提问来源于stack exchange,提问作者Akael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 05:27:48