Шпаргалка по Docker
Все команды курса «Docker для начинающих», собранные по задачам. В колонке «Урок» — где команда разобрана подробно. Сохраните страницу в закладки.
Контейнеры: запустить и остановить
| Команда |
Что делает |
Урок |
docker run -d --name web -p 8080:80 nginx:alpine |
запустить новый контейнер в фоне, с именем и портом |
2 |
docker run --rm -it alpine sh |
временный контейнер с командной строкой, удалится после выхода |
2 |
docker run -e ИМЯ=значение … |
передать в контейнер переменную окружения |
5 |
docker stop web |
остановить контейнер |
2 |
docker start web |
запустить остановленный контейнер снова |
2 |
docker rm web |
удалить остановленный контейнер |
2 |
docker rm -f web |
остановить и удалить одной командой |
5 |
Контейнеры: посмотреть, что происходит
| Команда |
Что делает |
Урок |
docker ps |
работающие контейнеры |
2 |
docker ps -a |
все контейнеры, со статусом и кодом выхода |
2 |
docker logs web |
журнал программы в контейнере |
2 |
docker logs -f web |
журнал в реальном времени, выход — Ctrl + C |
2 |
docker logs --tail 20 web |
последние 20 строк журнала |
8 |
docker exec -it web sh |
командная строка внутри работающего контейнера |
8 |
docker inspect web |
все настройки контейнера: тома, порты, переменные |
8 |
docker stats |
процессор и память контейнеров в реальном времени |
8 |
docker port web |
какие порты опубликованы |
6 |
Образы
| Команда |
Что делает |
Урок |
docker pull postgres:16 |
скачать образ |
3 |
docker images |
образы на компьютере |
3 |
docker rmi alpine:latest |
удалить образ |
3 |
docker build -t my-site:1.0 . |
собрать образ из Dockerfile в текущей папке |
4 |
Имя образа — реестр/имя:тег. Без тега Docker подставляет latest, поэтому в работе версию указывают явно.
Dockerfile
| Инструкция |
Что делает |
Урок |
FROM nginx:alpine |
базовый образ |
4 |
WORKDIR /app |
рабочая папка внутри образа |
4 |
COPY . . |
скопировать файлы из папки сборки в образ |
4 |
RUN pip install -r requirements.txt |
выполнить команду при сборке |
4 |
EXPOSE 80 |
отметить порт программы — подсказка, порт не открывает |
4 |
CMD ["python", "app.py"] |
что запускать при старте контейнера |
4 |
Редко меняющиеся шаги — выше, часто меняющиеся — ниже: так сборка берёт слои из кэша. Лишнее исключает файл .dockerignore.
Данные: тома и папки
| Команда |
Что делает |
Урок |
-v pgdata:/var/lib/postgresql/data |
подключить том к папке в контейнере |
5 |
-v "$(pwd)":/usr/share/nginx/html:ro |
подключить текущую папку только для чтения; в PowerShell — "${PWD}" |
5 |
docker volume ls |
список томов |
5 |
docker volume inspect pgdata |
подробности о томе |
5 |
docker volume rm pgdata |
удалить том вместе с данными |
5 |
Сеть и порты
| Команда |
Что делает |
Урок |
-p 8080:80 |
порт компьютера : порт в контейнере |
6 |
-p 127.0.0.1:5432:5432 |
открыть порт только для своего компьютера |
6 |
docker network create shop |
создать сеть: в ней контейнеры видят друг друга по имени |
6 |
--network shop |
подключить контейнер к сети при запуске |
6 |
docker network ls |
список сетей |
6 |
docker network rm shop |
удалить сеть |
6 |
Docker Compose
| Команда |
Что делает |
Урок |
docker compose up -d |
поднять все сервисы из compose.yaml в фоне |
7 |
docker compose up -d --build |
пересобрать образы и поднять |
7 |
docker compose ps |
контейнеры проекта |
7 |
docker compose logs -f |
логи всех сервисов в реальном времени |
7 |
docker compose stop |
остановить, не удаляя |
7 |
docker compose down |
остановить и удалить контейнеры и сеть, тома остаются |
7 |
docker compose down -v |
то же и удалить тома вместе с данными |
7 |
docker compose config |
итоговый файл с подставленными переменными |
7 |
Пароли — в файле .env рядом с compose.yaml, а сам .env — в .gitignore.
Уборка
| Команда |
Что делает |
Урок |
docker system df |
сколько места занимает Docker |
8 |
docker container prune |
удалить все остановленные контейнеры |
2 |
docker image prune |
удалить образы без тега и контейнеров |
3 |
docker volume prune |
удалить неподключённые тома без имени |
8 |
docker system prune |
удалить остановленные контейнеры, лишние сети, образы без тега и кэш сборки |
8 |
Флаги -a и --volumes у docker system prune удаляют гораздо больше — перед ними проверьте, что ничего нужного не пропадёт.
Если не работает
| Признак |
Что сделать |
Урок |
статус Exited (1) |
прочитать docker logs |
8 |
port is already allocated |
выбрать другой порт или остановить контейнер, который его занял |
6 |
container name … is already in use |
удалить старый контейнер или выбрать другое имя |
2 |
Cannot connect to the Docker daemon |
запустить Docker Desktop или службу Docker |
8 |