使用Ansible在正在运行的Docker容器中运行一个shell命令

我想执行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来执行此操作吗?

您正在寻找docker exec命令行的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 

AFAIK没有办法,你可以用docker_container模块来做 – 它用来用指定的命令启动一个新的容器。

我使用这段代码来执行容器内的命令:

 - name: Execute command inside a container shell: "docker exec {{ containerName }} {{ commandToRun }}"