如何重新启动所有正在运行的Docker容器?主要寻求一种快捷方式,而不是执行
docker restart containerid1 containerid2
如何重新启动所有正在运行的Docker容器?主要寻求一种快捷方式,而不是执行
docker restart containerid1 containerid2
只需运行
docker restart $(docker ps -q)
更新
若要重启所有容器(包括已停止和正在运行的),请使用docker restart $(docker ps -a -q)
,如下面的答案所示。
对我来说,现在是:
docker restart $(docker ps -a -q)
如果您拥有docker-compose
,您只需要执行以下操作:
docker-compose restart
你可以获得一个漂亮的输出,其中包括容器名称以及其重新启动的状态(完成/错误)
以下是安装的官方指南:https://docs.docker.com/compose/install/
只启动已停止的容器:
docker start $(docker ps -a -q -f status=exited)
(在Windows中,它可以在PowerShell中运行。)
开始所有容器:
docker restart $(docker ps -a -q)
如果您没有执行此操作的权限,请使用sudo:
sudo docker restart $(sudo docker ps -a -q)
docker restart $(docker ps -a -q -f status=healthy)
启动所有已停止的容器:
docker start $(docker ps -a -q -f status=exited)
其他状态选项可能包括:
created
,restarting
,running
,removing
,paused
,exited
,dead
。
要启动多个容器,只需使用特定的容器 ID:$ docker restart container-id1 container-id2 container-id3 ...
docker ps -q | xargs docker restart
命令。启动最后5个容器
docker start $(docker ps -n 5 -q)
-a
列出未运行的容器,但-q
代表什么? - Jim Ahodocker ps --help
:-q, --quiet 仅显示数字ID
您可以通过命令docker [command] --help
获得每个 docker 命令的帮助 - Andrey Romashindocker ps --all
命令输出表格中的每个值启动一个容器,因此它将尝试运行docker restart 'up for 2 weeks ago'
、docker restart '33060/tcp'
等等。最好以某种方式限制docker ps
命令的输出只显示名称列。例如:docker restart $(docker ps --all --format "{{.Names}}")
。 - Brian H.