Docker совет №19: docker-compose stop или down?
Mar 29, 2018 07:28 · 135 words · 1 minute read docker docker-compose
Связку контейнеров, описанных в конфигурационном файле docker-compose.yml можно остановить с помощью команд stop или down , однако вторая команда делает гораздо больше, чем просто остановка контейнеров. Давайте разберемся!
Команда docker-compose stop остановит ваши запущенные docker-контейнеры, однако не удалит их. В отличии от нее, команда docker-compose down остановит запущенные docker-контейнеры и удалит их, а также все docker-сети (networks) созданные при запуске связки контейнеров из файла docker-compose.yml .
Можно даже продвинуться дальше — добавить аргумент -v ( —volumes ) при запуске команды для удаления созданных томов. Команда docker-compose down -v отлично подходит для поддержания вашей системы в чистоте и порядке.
C командой down и дополнительными параметрами можно сделать еще несколько полезных вещей — например, удалить docker-образы или контейнеры, которые больше не присутствуют в файле docker-compose.yml (orphans). Чтобы увидеть все доступные аргументы и варианты их использования достаточно запустить команду:
docker-compose down -help
10 команд для Docker, без которых вам не обойтись
Docker — полезный инструмент для создания микросервисов. Чтобы эффективнее работать с ним, вам пригодятся команды, 10 из которых мы сегодня обсудим.
Docker — отличный инструмент для создания микросервисов, который позволяет создавать облачные приложения и системы. Чтобы выжать из него максимум через терминал, вам пригодятся 10 команд, перечисленных ниже.
Контейнер запускается путём запуска образа. Образ — исполняемый пакет, который содержит всё необходимое для запуска приложения: код, среду выполнения, библиотеки, переменные среды и конфигурационные файлы.Контейнер создаётся из образа. Это то, чем становится образ во время исполнения (иными словами, образом с состоянием или пользовательским процессом). Вы можете просмотреть список запущенных контейнеров с помощью команды docker ps , прямо как в Linux.
Docker Concepts
- docker ps — показывает список запущенных контейнеров. Некоторые из полезных флагов:-a / —all — список всех контейнеров (по умолчанию показывает только запущенные);-q / —quiet — перечислить только id контейнеров (полезно, когда вам нужны все контейнеры).
- docker pull — большинство образов создаётся на основе базового образа из Docker Hub. Docker Hub содержит множество готовых образов, которые можно использовать вместо того, чтобы создавать и настраивать свой собственный. Чтобы скачать определённый образ или набор образов (репозиторий), используйте команду docker pull .
- docker build — эта команда собирает образ Docker из Dockerfile и «контекста». Контекст сборки — это набор файлов, расположенных по определённому пути или URL. Используйте флаг -t , чтобы задать имя образа. Например, команда docker build -t my_container . соберёт образ, используя текущую директорию, на что указывает точка в конце.
- docker run — запускает контейнер, на основе указанного образа. Эту команду можно дополнять другими, например, docker run my_image -it bash запустит контейнер, а затем запустит в нём bash.
- docker logs — эта команда используется для просмотра логов указанного контейнера. Можно использовать флаг —follow , чтобы следить за логами работающей программы: docker logs —follow my_container .
- docker volume ls — показывает список томов, которые являются предпочитаемым механизмом для сохранения данных, генерируемых и используемых контейнерами Docker.
- docker rm — удаляет один и более контейнеров, например, docker rm my_container .
- docker rmi — удаляет один и более образов, например, docker rmi my_image .
- docker stop — останавливает один и более контейнеров. Команда docker stop my_container остановит один контейнер, а docker stop $(docker ps -a -q) — все запущенные. Более грубый способ — использовать docker kill my_container , который не пытается сначала аккуратно завершить процесс.
- Можно комбинировать эти команды. Например, для очистки всех контейнеров и образов:Останавливаем все запущенные контейнеры docker kill $(docker ps -q).Удаляем все остановленные контейнеры docker rm $(docker ps -a -q).Удаляем все образы docker rmi $(docker images -q).
Существует гораздо больше команд для Docker, о которых можно почитать в документации. Пробуйте новые примеры, комбинируйте их, и скоро это войдёт в привычку.
Остановить и удалить все Docker контейнеры

Последнее время в среде программистов и тестировщиков стал популярен Docker. Чаще всего его используют для разработки.
Что делать, если понадобилось удалить с компьютера Docker контейнеры. Как это сделать самым простым способом?
Смотрим список всех контейнеров Docker
~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu latest d65e68e6cc7c 8 weeks ago 187.9 MB
nginx/official latest 32936ce9d754 5 months ago 16.4 MB
mysql latest 8c90d670d8c1 20 months ago 93.9 MB
Сначала удалим один любой контейнер. Например nginx/official.
~$ sudo docker rmi 32936ce9d754
Error response from daemon: Conflict, cannot delete 32936ce9d754 because the container ad41f0d8bed4 is using it, use -f to force
FATA[0000] Error: failed to remove one or more images
~$ sudo docker rmi -f 32936ce9d754
Untagged: nginx/official:latest
Deleted: 456367e93724f55b133bd20bd886f387beaae420c5ffef8e9f8388b9e39ed4ca
Deleted: a1edaad25e21c258b532c678b3b582f38e82b161655ebe249c1e13e1e16383ab
Deleted: 44e7c4c4db2f148ff697562b15330fd7a18d7d915bb90f97ef7d1e12fc44e526
Deleted: 7325a2153bd642f7bb629206086e99a479df72eac25c485a09c94500861d43a6
Deleted: a2764315d1c32a31f25a37dbd7c70def8e6847725d34adc93ce4d56f2e2acd28
Deleted: 1eef97e7200a2ae40343da9ec62e6e0cffbecbe8d23abc0418252f471fc63e34
Deleted: 6c37a0ec84ec524c6df4629d7724c9023e4d079ad817511516b558eb30d14d9a
Deleted: b54da45fe14971f425c9a6c1e48acc55cd29507e6b849b93c33b15be3fe08a7b
Deleted: ea854c9b01867648a1bfccab89aee285d333b26dbd8bff7643f3846fd72e2762
Deleted: 4a5e6db8c0693a16de88b7559ded7c1cb804018571b137e13abb1713ce6a71cf
Deleted: 1c49f83e0b13f73bf3d276c9fe56ba9aa94d2a1614e866642b95cb0545d0cdab
Если у нас много контейнеров, то можно удалить их массово.
Остановить все Docker контейнеры.
# docker stop $(docker ps -a -q)
Удалить все Docker контейнеры
# docker rm $(docker ps -a -q)
Опция –q (–quiet) — дает возможность узнавать идентификаторы самих контейнеров с утилитой ps.
Команды Docker по работе с контейнерами

Например, мы запускаем контейнер с Python с доступом к терминалу, команда будет такой: docker run -ti python:latest . Если не указать -ti , то выйти из терминала Python будет очень затруднительно.
Просмотреть список запущенных контейнеров можно командой docker ps . Однако в таком виде команда вернёт список только запущенных контейнеров, чтобы вывести список всех контейнеров, в том числе и остановленных, нужно указать ключ -a . Еще один полезный ключ для отображения списка контейнеров: -q . Он выводит только ID контейнеров.
Остановить контейнер можно командой docker stop имя/id контейнера , а перезагрузить — docker restart имя/id контейнера .
Для удаления контейнера применяется команда docker rm имя/id контейнера . Если нужно удалить все контейнеры можно применить связку команд: docker rm $(docker ps -qa) .
Удалить все не связанные с контейнерами ресурсы (образы, контейнеры, тома и сети) можно командой docker system prune . Если требуется удалить все остановленные контейнеры и неиспользуемые образы можно воспользоваться командой docker system prune -a .
Если вы интересуетесь Docker и контейнеризацией в целом, вам могут быть интересны следующие материалы:

История контейнеризации
Краткая история контейнеризации и разбор конкретных технологий: chroot, jail, namespaces и cgroups.

Введение в Docker
Разбираемся в том, что такое Docker, из каких компонентов состоит и какие технологии контейнеризации использует.
Поделиться в соцсетях:
Средняя оценка: 5,0, всего оценок: 2 Спасибо за Вашу оценку! К сожалению, проголосовать не получилось. Попробуйте позже