Поиск по сайту:

Педагог — это инженер человеческих душ (М.И. Калинин).

4 мин для чтенияКак остановить Docker контейнеры

FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
17 декабря 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

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

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

 

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

 

Читать  Проверка орфографии в командной строке Linux

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

 

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? Представьте себе сценарий, в котором вы хотите удалить образ докера, но вам придется остановить все связанные запущенные контейнеры.

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

Просто замените 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.

Читать  Как переименовать несколько файлов на Linux

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

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

docker stop -t 30 container_name_or_id

 

В конце…

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читайте также

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close