Справочник
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'а: тот же образ, тот же порт, только вместо ручной команды — декларативный манифест.