Справочник

Docker — шпаргалка перед Kubernetes

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

Термины

ТерминЧто это
Образ (image)Неизменяемый шаблон: файловая система + метаданные (что запускать). Аналог класса в ООП.
Контейнер (container)Запущенный (или остановленный) экземпляр образа. Аналог объекта класса.
DockerfileТекстовый рецепт сборки образа: набор инструкций по шагам.
RegistryХранилище образов (напр. Docker Hub) — туда образы пушат, оттуда их тянет Kubernetes.
TagМетка версии образа, напр. myapp:1.0. Без тега подставляется latest.
Layer (слой)Результат одной инструкции Dockerfile. Docker кеширует слои и переиспользует их, пока строка и файлы, от которых она зависит, не изменились.
Volume (том)Папка с хоста, подключённая внутрь контейнера — переживает удаление контейнера.

Команды CLI

Клик по команде — копирует её в буфер обмена.

КомандаЧто делает
docker build -t имя:тег .Собрать образ из Dockerfile в текущей папке
docker imagesСписок локальных образов
docker run -p 8000:8000 имя:тегЗапустить контейнер, пробросив порт 8000 хоста на 8000 контейнера
docker run -d ...Запустить в фоне (detached)
docker psСписок запущенных контейнеров
docker ps -aСписок всех контейнеров, включая остановленные
docker logs имя_контейнераПосмотреть логи контейнера
docker exec -it имя_контейнера bashЗайти в работающий контейнер интерактивным шеллом
docker stop имя_контейнераОстановить контейнер
docker rm имя_контейнераУдалить остановленный контейнер
docker rmi имя:тегУдалить образ
docker run --rm -v "$(pwd)":/data alpine ls /dataПодключить текущую папку хоста как том /data внутри контейнера

Ключевые инструкции Dockerfile

ИнструкцияЧто делает
FROMБазовый образ, от которого наследуемся
WORKDIRРабочая директория внутри образа для следующих команд
COPYСкопировать файлы с хоста в образ
RUNВыполнить команду во время сборки образа (напр. установка зависимостей)
EXPOSEЗадокументировать, какой порт слушает приложение (не публикует его сам по себе)
CMDКоманда по умолчанию при запуске контейнера
Почему это важно для k8s Kubernetes не собирает образы — он их только запускает. Всё, что вы сейчас учитесь делать через docker build и docker run, в следующих уроках превратится в YAML-описание Pod'а: тот же образ, тот же порт, только вместо ручной команды — декларативный манифест.

← Урок 1: Docker ровно настолько, насколько нужно