Урок 01 · Начинаем с нуля

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

Сначала запустим готовый сайт одной командой. Потом без сложных слов разберём, что сделал Docker.

Время: 7–10 минут Нужно: запущенный Docker Результат: сайт в браузере

Зачем здесь Docker

Допустим, нам нужен веб-сервер Nginx. Без Docker пришлось бы отдельно его скачать, установить и настроить.

С Docker мы берём уже подготовленный набор с Nginx и запускаем его отдельно от остальных программ на компьютере.

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

Шаг 1. Запустите сайт

Откройте терминал, вставьте команду и нажмите Enter:

docker run --name my-site -d -p 8080:80 nginx:alpine

При первом запуске Docker может несколько секунд скачивать файлы. После этого откройте в браузере:

http://localhost:8080

Адрес нужно открыть на том же компьютере, где запущен Docker. Если курс открыт на телефоне или планшете, введите адрес в браузере компьютера.

Если появилась страница Welcome to nginx!, всё получилось. Сейчас Nginx работает внутри Docker.

Если страница не открылась

Сначала выполните:

docker ps

В списке должна быть строка с именем my-site. Если терминал показал ошибку, не пытайтесь угадывать причину: сохраните её целиком и отправьте преподавателю.

Что сейчас произошло

Нам понадобились две вещи:

  • Образ (image) — подготовленный набор с программой Nginx. Сам по себе он не работает.
  • Контейнер (container) — запущенный экземпляр этого образа. Именно он сейчас показывает страницу.

Можно представить образ как сохранённую заготовку, а контейнер — как работающую копию этой заготовки. Из одного образа можно запускать несколько контейнеров.

Что написано в команде

Не нужно запоминать всё сразу. Сейчас важны только четыре части:

ЧастьПростыми словами
docker runЗапусти контейнер.
--name my-siteНазови его my-site, чтобы потом легко найти.
-p 8080:80Открой сайт на нашем компьютере по адресу с портом 8080.
nginx:alpineИспользуй подготовленный образ Nginx.

-d просто оставляет контейнер работать в фоне, чтобы терминал не был занят.

Шаг 2. Остановите и верните сайт

Остановите контейнер:

docker stop my-site

Обновите страницу. Она перестанет открываться, потому что программа больше не работает.

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

docker start my-site

Обновите страницу ещё раз. Сайт вернулся.

Что важно заметить Образ никуда не исчезал. Мы останавливали и запускали контейнер, созданный из этого образа.

Теперь самостоятельно

Создайте второй контейнер. Измените в первой команде:

  • имя my-site на my-second-site;
  • порт 8080:80 на 8081:80.

До запуска ответьте: по какому адресу откроется второй сайт?

Показать решение
docker run --name my-second-site -d -p 8081:80 nginx:alpine

Второй сайт откроется по адресу http://localhost:8081. Оба контейнера используют один образ, но работают отдельно.

Три коротких вопроса

1. Что такое образ?

2. Что такое контейнер?

3. Что произойдёт после docker stop?

Объясните своими словами

Закончите фразу: «Образ — это…, а контейнер — это…»

Как это сказать на собеседовании

«Образ — это подготовленный неизменяемый шаблон приложения и его зависимостей. Контейнер — запущенный экземпляр образа. Из одного образа можно создать несколько независимых контейнеров».

Эту формулировку пока не нужно заучивать. Сначала важно уверенно объяснять разницу своими словами.

Урок пройден, если

  • Вы увидели страницу Nginx в браузере.
  • Вы остановили контейнер и запустили его снова.
  • Вы можете своими словами отличить образ от контейнера.

Основной источник: Docker Docs: What is a container?. Если команда не сработала или объяснение осталось непонятным, отправьте вопрос преподавателю вместе с тем, что увидели на экране.

Убрать учебные контейнеры после занятия
docker rm --force my-site my-second-site