gpt4 book ai didi

在所有正在运行的容器上执行 Docker

转载 作者:行者123 更新时间:2023-12-02 19:03:09 25 4
gpt4 key购买 nike

我在我的服务器上运行了几个 docker 容器,并且需要对所有容器上的存储库执行 git pull。

我试过用这个:

docker exec $(docker ps -q) bash -c "cd /var/www/html && git pull"

但是它出错了:

OCI runtime exec failed: exec failed: container_linux.go:345: starting container process caused "exec: \"606a1083d0be\": executable file not found in $PATH": unknown

它在某一时刻工作,但突然无缘无故地停止工作(我没有更改任何 docker 配置)

注意:docker ps -q 的输出只是容器 ID:

511c76a25dcc
995bd453c467

最佳答案

使用 Docker exec,您可以一次在一个容器上运行命令,但是根据您的问题,您希望在所有正在运行的容器上运行该命令,在这里。

    for containerId in $(docker ps -q)
do
docker exec -it $containerId bash -c 'cd /var/www/html && git pull'
done

我假设 git 已经安装在所有正在运行的容器中并且都基于 bash

或者更紧凑的形式都可以

for i in `docker ps -q`; do docker exec -it $i bash -c 'cd /var/www/html && git pull'; done

关于在所有正在运行的容器上执行 Docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56880821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com