10 команд Docker, которые должен знать каждый разработчик
, отредактировано
Ключевые выводы: 10 команд Docker, которые покрывают основные сценарии работы: просмотр контейнеров, скачивание образов, сборка и запуск, логи, тома, удаление и остановка. Плюс комбинации для полной очистки окружения.
Что такое образы и контейнеры Docker
Docker — отличный инструмент для создания микросервисов, который позволяет создавать облачные приложения и системы. Чтобы выжать из него максимум через терминал, вам пригодятся 10 команд, перечисленных ниже.
Контейнер запускается путём запуска образа. Образ — исполняемый пакет, который содержит всё необходимое для запуска приложения: код, среду выполнения, библиотеки, переменные среды и конфигурационные файлы.Контейнер создаётся из образа. Это то, чем становится образ во время исполнения (иными словами, образом с состоянием или пользовательским процессом). Вы можете просмотреть список запущенных контейнеров с помощью команды docker ps, прямо как в Linux.10 основных команд Docker
1. docker ps — список контейнеров
Показывает список запущенных контейнеров. Некоторые из полезных флагов:
-a/--all— список всех контейнеров (по умолчанию показывает только запущенные)-q/--quiet— перечислить только id контейнеров (полезно, когда вам нужны все контейнеры)
2. docker pull — скачивание образов
Большинство образов создаётся на основе базового образа из Docker Hub. Docker Hub содержит множество готовых образов, которые можно использовать вместо того, чтобы создавать и настраивать свой собственный. Чтобы скачать определённый образ или набор образов (репозиторий), используйте команду docker pull.
3. docker build — сборка образа
Эта команда собирает образ Docker из Dockerfile и «контекста». Контекст сборки — это набор файлов, расположенных по определённому пути или URL. Используйте флаг -t, чтобы задать имя образу. Например, команда docker build -t my_container . соберёт образ, используя текущую директорию, на что указывает точка в конце.
4. docker run — запуск контейнера
Запускает контейнер на основе указанного образа. Эту команду можно дополнять другими, например, docker run my_image -it bash запустит контейнер, а затем запустит в нём bash.
5. docker logs — просмотр логов
Эта команда используется для просмотра логов указанного контейнера. Можно использовать флаг --follow, чтобы следить за логами работающей программы: docker logs --follow my_container.
6. docker volume ls — тома
Показывает список томов, которые являются предпочитаемым механизмом для сохранения данных, генерируемых и используемых контейнерами Docker.
7. docker rm — удаление контейнеров
Удаляет один и более контейнеров, например, docker rm my_container.
8. docker rmi — удаление образов
Удаляет один и более образов, например, docker rmi my_image.
9. 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 stop от docker kill?
docker stop отправляет сигнал SIGTERM и даёт процессу время на корректное завершение (graceful shutdown). docker kill отправляет SIGKILL и принудительно завершает процесс без ожидания. Используйте stop в продакшене, kill — когда контейнер завис.
Как удалить все неиспользуемые ресурсы Docker?
Команда docker system prune удаляет все остановленные контейнеры, неиспользуемые сети, образы без тегов и кэш сборки. Добавьте флаг -a, чтобы удалить ещё и образы, не связанные ни с одним контейнером.
Нужно ли учить все команды Docker?
Нет, достаточно освоить 10–15 базовых команд, перечисленных в этой статье. Остальные можно находить по мере необходимости в официальной документации или через docker --help.