Шпаргалка Docker — команды и Compose

Команды Docker и Docker Compose, которые нужны каждую неделю, с пояснением в одну строку. Задайте образ, контейнер, порты и сервис один раз — каждая команда обновится и будет готова к копированию.

Обновлено
Ваши значенияВсе примеры ниже обновляются при вводе

Образы

10
docker pull node:22-alpine

Скачать образ из реестра.

docker image ls

Показать локальные образы и их размеры.

docker build -t myapp:1.0 .

Собрать образ из Dockerfile в текущей папке.

docker build -t myapp:1.0 -f Dockerfile.prod .

Сборка с другим Dockerfile.

docker build --no-cache -t myapp:1.0 .

Пересобрать все слои с нуля.

docker buildx build --platform linux/amd64,linux/arm64 -t ghcr.io/acme/myapp:1.0 --push .

Собрать для Intel и ARM (например, Apple Silicon, Graviton) и отправить оба варианта.

docker tag myapp:1.0 ghcr.io/acme/myapp:1.0

Присвоить образу имя реестра перед отправкой.

docker push ghcr.io/acme/myapp:1.0

Загрузить образ в реестр.

docker history myapp:1.0

Показать слои образа и размер каждого из них.

docker rmi myapp:1.0

опасно Удалить локальный образ.

Запуск контейнеров

8
docker run -d --name web -p 8080:3000 myapp:1.0

Запустить в фоне и опубликовать порт контейнера {{cport}} на порту хоста {{hport}}.

docker run --rm -it node:22-alpine sh

Запустить временную интерактивную оболочку; контейнер удалится при выходе.

docker run -d --restart unless-stopped --name web myapp:1.0

Автоматически перезапускать после сбоев и перезагрузок.

docker run --env-file .env -e NODE_ENV=production myapp:1.0

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

docker run -v app-data:/data myapp:1.0

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

docker run --rm -v "$(pwd)":/app -w /app node:22-alpine npm test

Подключить текущую папку и выполнить в ней команду.

docker run --memory 512m --cpus 1.5 myapp:1.0

Ограничить память и процессор.

docker run -d --network app-net --name web myapp:1.0

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

Управление контейнерами

10
docker ps -a

Показать все контейнеры, включая остановленные.

docker logs -f --tail 100 web

Следить за последними 100 строками логов.

docker exec -it web sh

Открыть оболочку в работающем контейнере (используйте bash, если он есть в образе).

docker stop web

Остановить штатно (SIGTERM, затем SIGKILL через 10 с).

docker restart web

Перезапустить контейнер.

docker cp web:/app/logs ./logs

Скопировать файлы из контейнера (поменяйте аргументы местами, чтобы скопировать в контейнер).

docker stats

Текущая загрузка процессора, памяти, сети и диска работающих контейнеров.

docker inspect -f '{{.State.Health.Status}}' web

Получить одно поле из сведений о контейнере — здесь статус проверки работоспособности.

docker port web

Показать, какие порты хоста связаны с контейнером.

docker rm -f web

опасно Остановить и удалить контейнер.

Docker Compose

12
docker compose up -d

Запустить все сервисы в фоне.

docker compose up -d --build

Пересобрать образы и запустить.

docker compose ps

Показать сервисы и их состояние.

docker compose logs -f api

Следить за логами одного сервиса.

docker compose exec api sh

Открыть оболочку в работающем сервисе.

docker compose run --rm api npm run migrate

Выполнить разовую команду в новом контейнере сервиса.

docker compose restart api

Перезапустить один сервис.

docker compose pull

Загрузить последние образы для всех сервисов.

docker compose config

Проверить файл и вывести итоговую объединённую конфигурацию.

docker compose -f compose.yml -f compose.prod.yml up -d

Наложить файл переопределений поверх базового.

docker compose down

Остановить и удалить контейнеры и сети (тома сохраняются).

docker compose down -v

опасно Также удалить тома — ваши базы данных будут потеряны.

Тома & сети

6
docker volume ls

Показать тома.

docker volume inspect app-data

Показать, где хранится том на хосте.

docker run --rm -v app-data:/data -v "$(pwd)":/backup alpine tar czf /backup/app-data.tar.gz -C /data .

Создать резервную копию тома в .tar.gz в текущей папке.

docker network create app-net

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

docker network connect app-net web

Подключить работающий контейнер к сети.

docker volume rm app-data

опасно Удалить том вместе с данными.

Очистка диска

5
docker system df

Показать, сколько места занимают образы, контейнеры, тома и кеш сборки.

docker builder prune

Удалить неиспользуемый кеш сборки.

docker image prune -a

опасно Удалить все образы, которые не используются контейнерами.

docker system prune

опасно Удалить остановленные контейнеры, неиспользуемые сети, висячие образы и кеш сборки.

docker system prune -a --volumes

опасно Удалить всё неиспользуемое, включая тома. Крайняя мера.

Отладка

5
docker run --rm -it --entrypoint sh myapp:1.0

Запустить образ с оболочкой вместо обычной команды — для образов, которые падают при старте.

docker logs web 2>&1 | grep -i error

Поиск по логам контейнера (stdout и stderr).

docker exec web env

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

docker compose exec api wget -qO- localhost:3000/health

Вызвать эндпоинт проверки работоспособности изнутри сервиса.

docker events --since 10m

Показать последние события Docker в реальном времени: запуски, остановки, завершения из-за нехватки памяти, изменения состояния здоровья.

Ваши данные никогда не покидают ваш компьютер. Вся обработка выполняется на 100% локально в вашем браузере.

Был ли этот инструмент полезен?0.0 Оценок: 0
Создайте compose.yaml для NodePython, Postgres, MySQL, MongoDB, Redis, Nginx, WordPress и других сервисов: с healthcheck, томами и готовым файлом .env.Генератор Docker Compose →

Как пользоваться: Шпаргалка Docker

  1. Введите свои значения (образ, контейнер, порты, сервис) в полях вверху — все примеры на странице обновятся сразу.
  2. Найдите нужную команду через поиск или перейдите к разделу.
  3. Нажмите Copy, чтобы скопировать готовую строку, или Copy section, чтобы скопировать блок с комментариями.
  4. Команды с пометкой destructive удаляют или перезаписывают данные — прочитайте примечание перед запуском.

Образы, контейнеры, тома и сети

Образ — это упакованная файловая система и команда запуска, собранные из Dockerfile. Контейнер — это запущенная копия образа. Все данные, которые записывает контейнер, исчезают при его удалении, если только они не сохранены в томе. Контейнеры в одной пользовательской сети обращаются друг к другу по имени — так сервисы Compose подключаются к своей базе данных.

Как читать -p и -v

Оба флага записываются в виде host:container. -p 8080:3000 означает «запросы на порт 8080 моего компьютера передаются на порт 3000 контейнера». -v app-data:/data монтирует именованный том app-data в каталог /data; -v "$(pwd)":/app монтирует вместо этого текущую папку — так в разработке работает автоматическая перезагрузка кода.

Как сделать образы компактными и сборку быстрой

  • Начинайте с облегчённых базовых образов, например -alpine или -slim, и используйте многоэтапную сборку, чтобы компиляторы не попадали в продакшен.
  • Копируйте файлы зависимостей и устанавливайте их до копирования остального кода, чтобы слой с установкой оставался в кеше.
  • Добавьте .dockerignore для node_modules, .git и результатов сборки.

Создать файлы Compose можно в генераторе Docker Compose, а настроить CI — в генераторе GitHub Actions.

Также ищут как: docker compose команды, docker run, docker exec, docker prune.

Инструменты, которые хорошо сочетаются с Шпаргалка Docker

  • Шпаргалка по Linux-командам — Команды Linux и bash, которые разработчики используют на серверах и ноутбуках: файлы, поиск, права доступа, процессы, логи, сеть и SSH.
  • Шпаргалка Git — Все команды Git, которые вы используете каждый день, и те, что нужны, когда что-то пошло не так, — с пояснением в одну строку.
  • Генератор конфига Nginx — Выберите, что должен делать Nginx: отдавать статический сайт или SPA, проксировать запросы к приложению на Node/Python или обрабатывать PHP.
  • Промпты для разработчиков — Проверенные промпты для задач, которые вы решаете каждый день: отладка, ревью, тесты, рефакторинг, SQL, сообщения коммитов и документация.

Часто задаваемые вопросы

В чём разница между образом и контейнером?
Образ — это шаблон только для чтения, собранный из Dockerfile. Контейнер — это запущенный (или остановленный) экземпляр образа со своим слоем для записи. Из одного образа можно запустить сколько угодно контейнеров.
Как освободить место на диске, которое занимает Docker?
Проверьте использование командой docker system df, затем удалите кеш сборки командой docker builder prune и неиспользуемые образы командой docker image prune -a. Команда docker system prune удаляет больше за один раз — сначала посмотрите, что она удалит.
Правильно docker compose или docker-compose?
Используйте docker compose (через пробел). Это Compose v2, встроенный в CLI Docker. Отдельный инструмент docker-compose v1 устарел.
Почему мои контейнеры не видят друг друга?
Контейнеры в сети bridge по умолчанию не могут найти друг друга по имени. Поместите их в пользовательскую сеть (docker network create) или в один проект Compose, затем используйте имя сервиса или контейнера как имя хоста.
Можно ли установить Шпаргалка Docker как веб-приложение и пользоваться им офлайн?
Да. Шпаргалка Docker — это веб-приложение (PWA), которое можно установить из браузера, без скачивания из магазина приложений. В Chrome или Edge (Windows, macOS, Linux, ChromeOS) или на Android нажмите вверху этой страницы «Установить приложение»; на iPhone и iPad используйте «Поделиться → На экран «Домой»», а в Safari 17+ на Mac — «Файл → Добавить в Dock». После этого приложение откроется в отдельном окне со своим значком, и так как оно полностью работает в браузере, оно продолжит работать офлайн. Firefox на компьютере не умеет устанавливать веб-приложения. Как работает установка.

Похожие инструменты

localГенератор Docker ComposeОтметьте нужные сервисы — приложение, базу данных, кеш, панель администратора, перехватчик почты — и…localГенератор GitHub ActionsВыберите стек, триггеры и шаги, и вы получите закомментированный файл .github/workflows/ci.yml —…localШпаргалка по Linux-командамКоманды Linux и bash, которые разработчики используют на серверах и ноутбуках: файлы, поиск, права…localШпаргалка GitВсе команды Git, которые вы используете каждый день, и те, что нужны, когда что-то пошло не так, — с…localГенератор конфига NginxВыберите, что должен делать Nginx: отдавать статический сайт или SPA, проксировать запросы к приложению на…localПромпты для разработчиковПроверенные промпты для задач, которые вы решаете каждый день: отладка, ревью, тесты, рефакторинг, SQL,…