1

我目前正在运行一个 mac mini 主机,可以随时运行 2 到 6 个由同一个代理构建的 docker 容器。容器充当构建代理,但时不时地构建失败并且无法正确清理。这会导致剩余的文件占用空间。

我想设置和 cron 作业,每晚运行,对每个容器执行 docker exec 命令并删除我的构建目录。

我试过简单的: docker exec -it `docker ps -q` ls /root/build-dir

但这失败了: OCI runtime exec failed: exec failed: container_linux.go:344: starting container process caused "exec: \"ee89958ce4bc\": executable file not found in $PATH": unknown

但是,这有效: docker exec -it ee89958ce4bc ls /root/build-dir

有没有一种方法可以对多个容器使用 docker exec,而无需编写复杂的脚本来遍历来自 docker ps 的容器 ID?

注意:我不想更改 docker 容器并在那里添加 cron 作业。我希望它在主机上运行

4

1 回答 1

1

你可以使用for loop

for con in `docker ps -q` ; do echo "$con" && docker exec -it $con ls -l; done
于 2019-08-06T09:19:05.447 回答