Поиск по сайту:
Ныне от одного мудреца больше требуется, чем в древности от семерых (Б. Грасиан).

Как остановить Docker контейнеры

17.12.2019
Установить Docker 1.11 на Ubuntu 16.04 LTS x64

В этой статье по Docker обсуждаются способы остановки одного Docker-контейнера, нескольких Docker-контейнеров или всех запущенных Docker-контейнеров одновременно. Вы также научитесь грациозно останавливать Docker контейнер.

Чтобы остановить контейнер Docker, все, что вам нужно сделать, это использовать идентификатор контейнера или имя контейнера следующим образом:

docker stop container_ID_or_name

Вы также можете использовать команду docker container stop container_id_or_name, но это еще одно слово в команде, которое не дает никаких дополнительных преимуществ, поэтому придерживайтесь docker stop.

Но есть еще кое-что, что нужно знать об остановке Docker-контейнера, особенно если вы новичок в Docker.

 

Практические примеры остановки Docker-контейнера

В этой статье мы расскажем о различных аспектах остановки Docker-контейнера:

  • Остановка Docker-контейнера
  • Остановка нескольких Docker-контейнеров одновременно
  • Остановка всех Docker-контейнеров с определенным изображением
  • Остановка всех запущенных Docker-контейнеров сразу
  • Изящная остановка Docker контейнера

Прежде чем вы увидите это, вы должны знать, как получить имя контейнера или идентификатор.

Вы можете получить список всех запущенных контейнеров Docker с помощью команды docker ps. Без каких-либо опций команда docker ps показывает только запущенные контейнеры.

abhishek@linuxhandbook:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
1bcf775d8cc7        ubuntu              "bash"              8 minutes ago       Up About a minute                       container-2
94f92052f55f        debian              "bash"              10 minutes ago      Up 10 minutes                           container-1

Вывод также дает вам имя контейнера и идентификатор контейнера. Вы можете использовать любой из этих двух, чтобы остановить контейнер.

Читать  Kubectl - Как перезапустить Pod

Теперь давайте остановимся на контейнерах.

 

1. Остановка Docker контейнера

Чтобы остановить определенный контейнер, используйте его идентификатор или имя с командой docker stop:

docker stop container_name_or_ID

 

Вывод должен быть более описательным, но он просто показывает имя контейнера или идентификатор, какой бы вы ни указали:

abhishek@itsfoss:~$ docker stop 1bcf775d8cc7
1bcf775d8cc7

Вы можете использовать команду docker stop для уже остановленного контейнера. Он не будет выдавать никаких ошибок или другого выхода.

Вы можете проверить, остановлен ли контейнер, с помощью команды docker ps -a. Опция -a показывает все контейнеры, запущены они или остановлены.

abhishek@itsfoss:~$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
1bcf775d8cc7        ubuntu              "bash"              19 minutes ago      Exited (0) About a minute ago                       container-2
94f92052f55f        debian              "bash"              29 minutes ago      Up 29 minutes                                   container-1

 

Если статус «Выход», это означает, что контейнер больше не работает.

 

2. Остановка несколько Docker-контейнеров

Вы также можете остановить несколько Docker-контейнеров одновременно. Вы просто должны предоставить имена контейнеров и идентификаторы.

docker stop container_id_or_name_1 container_id_or_name_2 container_id_or_name_3

 

Как и ранее, вывод будет просто отображать имя или идентификатор контейнеров:

abhishek@itsfoss:~$ docker stop container-1 container-2 container-3
container-1
container-2
container-3

 

3. Остановка всех контейнеров, связанные с изображением

До сих пор вы видели, как останавливали контейнеры, явно указав их имя или идентификатор.

Что если вы хотите остановить все запущенные контейнеры определенного образа Docker? Представьте себе сценарий, в котором вы хотите удалить образ докера, но вам придется остановить все связанные запущенные контейнеры.

Читать  Как избежать случайного закрытия или перезагрузки в Linux

Вы можете предоставить имена контейнеров или идентификаторы один за другим, но это отнимает много времени. Что вы можете сделать, так это отфильтровать все работающие контейнеры на основе их базового образа.

Просто замените IMAGE_NAME именем вашего образа докера, и вы сможете остановить все запущенные контейнеры, связанные с этим образом.

docker ps -q --filter ancestor=IMAGE_NAME | xargs docker stop

Опция -q показывает только идентификатор контейнера. Благодаря замечательной команде xargs эти идентификаторы контейнера передаются в качестве аргумента до остановки докера.

 

4. Остановка всех работающих docker -контейнеров.

Вы можете столкнуться с ситуацией, когда вам необходимо остановить все работающие контейнеры.

Для этого вы можете использовать нечто похожее на то, что вы видели в предыдущем разделе. Просто удалите часть изображения.

docker ps -q | xargs docker stop

 

5. Изящная остановка контейнера

Если честно, docker по умолчанию корректно останавливает контейнер. Когда вы используете команду docker stop, она дает контейнеру 10 секунд, прежде чем принудительно убить его.

Это не значит, что для остановки контейнера всегда требуется 10 секунд. Просто если в контейнере запущены некоторые процессы, у него есть 10 секунд, чтобы остановить процесс и выйти.

Команда остановки Docker сначала отправляет команду SIGTERM. Если конейнер останавливается в этот период, он отправляет команду SIGKILL.

Процесс может игнорировать SIGTERM, но SIGKILL немедленно завершит процесс.

Вы можете изменить этот льготный период в 10 секунд с помощью опции -t. Предположим, вы хотите подождать 30 секунд, прежде чем остановить контейнер:

docker stop -t 30 container_name_or_id

 

Читать  Как настроить SSH-туннелирование в Linux

В конце…

Мы думаем, что эта большая информация охватывает тему очень хорошо. Вы знаете много вещей об остановке контейнера докера.

Следите за новыми статьями по docker. Если у вас есть вопросы или предложения, пожалуйста, дайте нам знать в разделе комментариев.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
Подсказки SEO электронной коммерции: 4 лучших метода SEO Чтобы представить…

Спасибо!

Теперь редакторы в курсе.