我想执行shell命令,例如:使用Ansible运行的docker容器中的“wget”命令。这是我试图执行的剧本
---
- name: Enter into a running container and run a command
docker_container:
name: centos_conatainer
state: started
image: centos
command: wget https://downloadlink.com
这会停止容器,也不会下载文件。这是使用docker_container模块执行shell命令的正确方法,还是有其他方法可以使用Ansible执行此操作?
答案 0 :(得分:3)
您正在寻找与 docker exec 命令行相当的Ansible。
ansible docker_container中的命令等同于 docker run 命令行中的命令选项。
似乎这个新的Ansible模块不支持此功能。您只需使用通用的Ansible命令即可。
示例:
- name: Enter into a running container and run a command
command: docker exec centos_container wget https://downloadlink.com
答案 1 :(得分:2)
AFAIK无法使用docker_container
模块执行此操作 - 它用于使用指定的命令启动新容器。
我使用此代码在容器内执行命令:
- name: Execute command inside a container
shell: "docker exec {{ containerName }} {{ commandToRun }}"
答案 2 :(得分:-3)