File ansible playbook将文件复制到docker容器

File ansible playbook将文件复制到docker容器,file,docker,ansible,copy,File,Docker,Ansible,Copy,我想使用ansible playbook将文件复制到docker容器。 我该怎么做 - name: kapacitor conf template: src=/home/debian/roles/tick_install/files/kapacitor.conf dest=/etc/kapacitor/kapaci 我假设您使用的是一个普通的Docker容器,没有经过协调的解决方案(如Kubernetes或Swarm)。如果您的容器已在运行,这将取决于: 未安装卷的情况下 如果您想将文件

我想使用ansible playbook将文件复制到docker容器。 我该怎么做

- name: kapacitor conf
  template: src=/home/debian/roles/tick_install/files/kapacitor.conf  dest=/etc/kapacitor/kapaci

我假设您使用的是一个普通的Docker容器,没有经过协调的解决方案(如Kubernetes或Swarm)。如果您的容器已在运行,这将取决于:

未安装卷的情况下

如果您想将文件复制到一个现有容器中,而该容器中没有安装要复制文件的卷,我认为除了通过
shell
命令运行
docker cp
命令外,没有其他方法,例如:

- name: Copy file into existing container at /path/in/the/container/kapaci
  shell: docker cp /etc/kapacitor/kapaci tick_kapacitor:/path/in/the/container/kapaci
将卷装入容器中

如果已经将卷从计算机装入容器,则可以直接在计算机装入点复制文件。例如,如果容器中有一个从
/var/myapp/data
装载到
/path/in/container
的卷,则可以使用
模板
将文件直接复制到其装载卷所在的容器中:

name: kapacitor conf 
template: 
  src: /home/debian/roles/tick_install/files/kapacitor.conf
  dest: /var/myapp/data/kapacitor.conf
  # will be available in container at /path/in/the/container
运行新容器 如果要运行新容器,可以使用模块或运行命令(
docker run
docker compose up…
),该命令将运行容器,然后使用前面提到的解决方案之一将文件复制到其中。

是否可以使用“s
volumes
设置来插入文件?这将是一个更典型的Docker设置。
name: kapacitor conf 
template: 
  src: /home/debian/roles/tick_install/files/kapacitor.conf
  dest: /var/myapp/data/kapacitor.conf
  # will be available in container at /path/in/the/container