Иногда некоторые процессы зависают во время работы контейнера. Это может быть связано с проблемой сети или ядра Docker. С этой целью перезапуск Docker может решить проблему такого рода.
В этой статье показано, как перезапустить Docker, не останавливая контейнеры.
Как перезапустить Docker, не останавливая контейнеры?
Когда пользователи Docker останавливают или перезапускают Docker, перезапускается только демон Docker, а не контейнеры. В Windows контейнеры выполняются как отдельный процесс. Таким образом, работающие контейнеры не могут быть прерваны или остановлены, когда движок Docker останавливается:
Для демонстрации выполните предоставленные инструкции.
Шаг 1: Создайте файл Compose
Сначала создайте компоновочный файл для запуска нескольких служб в контейнерах. Например, мы выполним « go-img », который контейнеризировал проект Golang:
услуги :
сеть :
имя_контейнера : сеть - контейнер
изображение : идти - изображение
команда : [ './веб сервер' ]
порты :
- '8080:8080/TCP'
голанг :
изображение : 'голанг: альпийский'
Шаг 2: Запустите контейнер Docker
Затем создайте и запустите контейнер в Docker compose с помощью данной команды. Здесь, ' -д ” выполнит службы или контейнеры в фоновом режиме:
> докер - составить - г
Для подтверждения того, выполняется контейнер или нет, посетите указанный порт локального хоста. Например, мы перешли к « 8080 ”:
Шаг 3. Откройте Windows PowerShell.
Запустите Windows PowerShell от имени администратора из меню «Пуск»:
Шаг 4. Перезапустите службу Docker.
Перезапустите механизм Docker, перезапустив службу Docker с помощью кнопки « Restart-Service Docker команда:
Проверьте, перезапущена ли служба или нет через « Докер Get-Service команда:
> Получать - Сервисный докерЗдесь вы можете видеть, что мы успешно перезапустили Docker:
Снова перейдите к локальному порту хоста, на котором работает ваш контейнер:
Вы можете видеть, что из приведенного выше вывода контейнер не завершается, когда мы перезапускаем службу Docker.
Заключение
В Windows при перезапуске службы Docker это не повлияет на контейнер Docker и не остановит его. Потому что контейнеры выполняются как отдельный процесс. Сначала запустите Windows PowerShell от имени администратора, чтобы перезапустить службу Docker. После этого выполните « Restart-Service Docker ” для перезапуска службы Docker. В этой статье показано, как перезапустить Docker, не останавливая контейнеры.