如何使用人偶杀死和删除Docker容器

时间:2020-04-24 08:57:01

标签: docker docker-compose puppet

我想(每两周一次)使用木偶向计算机添加计划的作业,以删除计算机上的所有容器。

当前,我需要在自动切换到该计算机后手动执行sudo docker rm -f $(sudo docker ps -a -q)

最好使用模块https://forge.puppet.com/puppetlabs/docker。 看不到任何杀死和删除容器的选项(也是puppet的新选项)。即使使用docker-compose也可以使用人偶。

有什么想法吗?谢谢。

1 个答案:

答案 0 :(得分:0)

您链接的文档说:

要删除正在运行的容器,请将以下代码添加到清单文件中。这也会删除与容器关联的systemd服务文件。

docker::run { 'helloworld':
 ensure => absent,
}

关于通过ssh删除容器的docker命令sudo docker rm -f $(sudo docker ps -a -q),您有一个更好的选择:

$ docker container prune --help

Usage:  docker container prune [OPTIONS]

Remove all stopped containers

Options:
      --filter filter   Provide filter values (e.g. 'until=<timestamp>')
  -f, --force           Do not prompt for confirmation

所以等价于:

docker container prune --force

您可以通过puppet自动执行此ssh命令,而无需手动ssh进入计算机。在没有安装代理的情况下将他们的文档检查为run shell commands,或者如果您已经在远程主机上安装了代理,则使用Bolt command