Все нужные команды Docker с пояснениями и примерами. Сохрани в закладки — пригодится каждый день.

- Команды для работы с контейнерами
- Команды для работы с образами
- Команды внутри контейнера
- Логи и мониторинг
- Команды для volumes
- Команды для сетей
- Системные команды
- Шпаргалка — самые нужные команды
- Часто задаваемые вопросы
- Как посмотреть все контейнеры Docker?
- Как остановить все контейнеры одной командой?
- Как удалить все образы Docker?
- Что читать дальше по Docker
Команды для работы с контейнерами
# Список запущенных контейнеров
docker ps
# Список всех контейнеров (включая остановленные)
docker ps -a
# Запустить контейнер из образа
docker run nginx
# Запустить в фоне (-d) с именем (--name)
docker run -d --name my-nginx nginx
# Запустить с пробросом портов (-p host:container)
docker run -d -p 8080:80 --name my-web nginx
# Открыть: http://localhost:8080
# Запустить интерактивный терминал (-it)
docker run -it ubuntu bash
# Запустить и удалить после остановки (--rm)
docker run --rm ubuntu echo "Привет!"
# Остановить контейнер
docker stop my-nginx
# Запустить остановленный контейнер
docker start my-nginx
# Перезапустить контейнер
docker restart my-nginx
# Удалить остановленный контейнер
docker rm my-nginx
# Принудительно удалить (даже работающий)
docker rm -f my-nginx
# Удалить все остановленные контейнеры
docker container prune
Команды для работы с образами
# Скачать образ
docker pull ubuntu:22.04
docker pull nginx:latest
docker pull python:3.12-slim
# Список образов на машине
docker images
# Удалить образ
docker rmi ubuntu:22.04
# Удалить все неиспользуемые образы
docker image prune
# Найти образ в Docker Hub
docker search nginx
# Собрать образ из Dockerfile в текущей папке
docker build -t myapp:1.0 .
# Собрать с другим Dockerfile
docker build -t myapp:prod -f Dockerfile.prod .
# Добавить тег образу
docker tag myapp:1.0 myusername/myapp:1.0
# Загрузить образ в Docker Hub
docker push myusername/myapp:1.0
# История слоёв образа
docker history myapp:1.0
Команды внутри контейнера
# Выполнить команду в работающем контейнере
docker exec my-nginx ls /etc/nginx
# Войти в интерактивную оболочку
docker exec -it my-nginx bash
docker exec -it my-nginx sh # если bash нет (Alpine)
# Скопировать файл из контейнера на хост
docker cp my-nginx:/etc/nginx/nginx.conf ./nginx.conf
# Скопировать файл с хоста в контейнер
docker cp ./my-config.conf my-nginx:/etc/nginx/conf.d/
Логи и мониторинг
# Просмотр всех логов
docker logs my-nginx
# Следить в реальном времени (как tail -f)
docker logs -f my-nginx
# Последние 100 строк + следить
docker logs --tail 100 -f my-nginx
# С временными метками
docker logs --timestamps my-nginx
# Логи за последние 30 минут
docker logs --since 30m my-nginx
# Статистика ресурсов (CPU, RAM, сеть)
docker stats
docker stats my-nginx
# Подробная информация о контейнере
docker inspect my-nginx
# Процессы внутри контейнера
docker top my-nginx
Команды для volumes
# Создать volume
docker volume create mydata
# Список volumes
docker volume ls
# Информация о volume
docker volume inspect mydata
# Удалить volume
docker volume rm mydata
# Удалить все неиспользуемые volumes
docker volume prune
# Запустить контейнер с named volume
docker run -d -v mydata:/app/data myapp
# Запустить с bind mount (папка с хоста)
docker run -d -v $(pwd):/app myapp
# Только для чтения
docker run -d -v $(pwd)/config:/app/config:ro myapp
Команды для сетей
# Список сетей
docker network ls
# Создать сеть
docker network create mynet
# Информация о сети
docker network inspect mynet
# Подключить контейнер к сети
docker network connect mynet my-container
# Отключить от сети
docker network disconnect mynet my-container
# Запустить контейнер в сети
docker run -d --network mynet myapp
# Удалить сеть
docker network rm mynet
# Удалить неиспользуемые сети
docker network prune
Системные команды
# Версия Docker
docker version
# Информация о системе
docker info
# Занятое место
docker system df
# Очистить всё неиспользуемое
# (остановленные контейнеры + dangling образы + неиспользуемые сети)
docker system prune
# Очистить всё включая volumes
docker system prune -a --volumes
# Войти в Docker Hub
docker login
# Выйти
docker logout
Шпаргалка — самые нужные команды
| Действие | Команда |
|---|---|
| Список контейнеров | docker ps -a |
| Запустить контейнер | docker run -d -p 8080:80 --name web nginx |
| Войти в контейнер | docker exec -it имя bash |
| Остановить | docker stop имя |
| Удалить | docker rm имя |
| Логи | docker logs -f имя |
| Список образов | docker images |
| Скачать образ | docker pull ubuntu:22.04 |
| Собрать образ | docker build -t имя:тег . |
| Удалить образ | docker rmi имя:тег |
| Список volumes | docker volume ls |
| Информация о контейнере | docker inspect имя |
| Статистика ресурсов | docker stats |
| Очистить всё | docker system prune -a |
Часто задаваемые вопросы
Как посмотреть все контейнеры Docker?
docker ps — только запущенные. docker ps -a — все, включая остановленные и завершившиеся. Флаги: -q выводит только ID (удобно для скриптов: docker rm $(docker ps -aq)), -f status=exited фильтрует по статусу, --format настраивает формат вывода.
Как остановить все контейнеры одной командой?
Два способа: docker stop $(docker ps -q) — остановить все запущенные (graceful shutdown). docker kill $(docker ps -q) — принудительно прибить все (SIGKILL). Для одновременного остановки и удаления: docker rm -f $(docker ps -aq). Осторожно: это остановит всё включая системные контейнеры если запускаешь на сервере с другими сервисами.
Как удалить все образы Docker?
docker image prune -a — удалить все неиспользуемые образы (у которых нет запущенных контейнеров). docker rmi $(docker images -q) — удалить все образы принудительно. Перед удалением — docker system df покажет сколько места они занимают. Если образ используется контейнером — сначала удалить контейнер: docker rm -f container_name.
Что читать дальше по Docker
Чтобы связать тему с соседними практическими материалами, дальше удобно открыть:
- docker run — разобрать запуск контейнера подробнее.
- docker exec — научиться входить внутрь контейнера.
- docker logs — посмотреть логи контейнера.
- Docker volumes — подключить постоянное хранилище.



