我想(每两周一次)使用木偶向计算机添加计划的作业,以删除计算机上的所有容器。
当前,我需要在自动切换到该计算机后手动执行sudo docker rm -f $(sudo docker ps -a -q)
。
最好使用模块https://forge.puppet.com/puppetlabs/docker。
看不到任何杀死和删除容器的选项(也是puppet的新选项)。即使使用docker-compose
也可以使用人偶。
有什么想法吗?谢谢。
答案 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。