Команда для перезапуска всех запущенных контейнеров докеров?

85

Как перезапустить все запущенные контейнеры докеров? В основном ищу ярлык вместо того, чтобы делать

docker перезапуск containerid1 containerid2

Ранджита
источник

Ответы:

179

Просто беги

docker restart $(docker ps -q)

Обновить

Для Docker 1.13.1используйте docker restart $(docker ps -a -q)ответ ниже.

Андрей Ромашин
источник
1
Я знаю, что -aсписки контейнеров не запущены, но что означает -q?
Джим Ахо
от docker ps --help: -q, --quiet Only display numeric IDs Вы можете получить помощь по каждой команде докера по командеdocker [command] --help
Андрей Ромашин
82

Для меня это сейчас:

docker restart $(docker ps -a -q)
Бор
источник
4
стоит упомянуть всем, что он работает только в PowerShell
Стенли
18

Если да docker-compose, то все, что вам нужно сделать, это:

docker-compose restart 

И вы получите красивую распечатку имени контейнера вместе с его статусом перезапуска (выполнено / ошибка)

Вот официальное руководство по установке: https://docs.docker.com/compose/install/

Бенджаминц
источник
14

Чтобы запустить только остановленные контейнеры:

docker start $(docker ps -a -q -f status=exited)

(В Windows он работает в Powershell).

Cepr0
источник
1

Чтобы запустить все контейнеры:

  docker restart $(docker ps -a -q)

Используйте sudo, если у вас нет разрешения на это:

sudo docker restart $(sudo docker ps -a -q)
Хитеш Кумар
источник
0

Чтобы запустить несколько контейнеров с единственным конкретным идентификатором контейнера $ docker restart contianer-id1 container-id2 container-id3 ...

навин чандер
источник
0

Запустите это как root-разрешение, иначе это может не сработать

  docker restart $(docker ps -a -q)

с правами root

sudo docker restart $(sudo docker ps -a -q)
Акита_МДЖ
источник