Я предполагаю, что вы используете простой контейнер Docker без согласованного решения (такого как Kubernetes или Swarm). Если ваш контейнер уже запущен, это будет зависеть от:
Без установленного объема
Если вы хотите скопировать файл в существующий контейнер, в котором нет смонтированного тома, на который вы хотите скопировать файл, я не вижу другого пути, кроме как запустить команду docker cp
через shell
или command
Например:
- 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/the/container
, вы можете использовать template
, чтобы скопировать файл непосредственно в контейнер с подключенным томом:
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_container
или запустить команду (docker run
, docker-compose up...
...), которая запустит ваш контейнер и затем скопирует файл в него, используя одно из ранее упомянутых решений.