Shanraq.org Shanraq.org
Контейнер: процесс с границами, а не маленькая VM
IT

Cloud & DevOps: от локального приложения до надёжного сервиса Урок 7 из 24

Контейнер: процесс с границами, а не маленькая VM

Запускаем первый контейнер, видим namespaces и неизменяемый образ, а также отделяем процесс от виртуальной машины.

Текст переведён с помощью ИИ.

Этот урок начинается с нуля. Незнакомое слово здесь не считается вашим пробелом: мы сначала создадим образ, затем дадим точное значение и только потом применим его.

Где мы находимся

Полётное повторение. В прошлом уроке была опора человек → адрес → сервис → ответ; жив ≠ готов ≠ полезен. Не подглядывая, назовите её четыре звена и только затем сравните с записью.

Результат урока

Запускаем первый контейнер, видим namespaces и неизменяемый образ, а также отделяем процесс от виртуальной машины. Не переходите дальше, пока не можете объяснить, что проверяет каждая команда и какой отказ она обнаруживает.

Сначала знакомый образ

Кухня ресторана общая, но у каждого повара своя рабочая станция, набор продуктов и лимит места. Контейнер похож на такую станцию: он использует ядро общего Linux, но видит ограниченное окружение. Виртуальная машина больше похожа на отдельную кухню со своей инфраструктурой.

Аналогия помогает начать рассуждение, но не заменяет устройство технологии. Ниже мы уточним каждое слово.

Опорный сигнал урока

контейнер = процесс + границы; VM = отдельная гостевая ОС

Прочитайте цепочку слева направо. Она отвечает не на вопрос «какую команду запомнить», а на вопрос «почему следующий шаг следует из предыдущего».

Новые слова простыми словами

  • Контейнер — Изолированный процесс с заданными файлами, сетью и лимитами.
  • Образ — Неизменяемый шаблон файлов для запуска контейнера.
  • VM — Виртуальный компьютер со своей гостевой операционной системой.
  • Namespace — Механизм Linux, ограничивающий то, что процесс видит.

Разбираем без спешки

Контейнер разделяет ядро хоста и изолирует процессы, сеть и файловое представление. Образ — шаблон, контейнер — конкретный запущенный экземпляр. Удаление контейнера не должно быть равнозначно потере важных данных.

Сейчас не нужно запоминать формулировку дословно. Найдите в ней причинную связь и привяжите её к опорному сигналу выше.

Сначала предскажите результат

До запуска ответьте на бумаге: что должно измениться, что должно остаться прежним и какой вывод команды подтвердит ваш прогноз? Даже неверный прогноз полезен, если после опыта вы можете объяснить расхождение.

Опыт маленькими шагами

Выполните команды из корня course/cloud-devops-lab. Команды рассчитаны на учебную среду. Перед командой, меняющей сервер или данные, прочитайте её целиком и проверьте текущий каталог. Запускайте блок по одной смысловой группе. После каждой остановитесь и сопоставьте результат со своим прогнозом.

docker version
docker run --rm alpine:3.23 cat /etc/os-release
docker ps -a
docker image ls alpine:3.23

Эталонные файлы проекта.

Что именно делает этот опыт

Команды запускают готовый образ, показывают процесс внутри и снаружи, затем удаляют учебный контейнер. Сравните PID и набор файлов: это один процесс с разными границами обзора.

Что должно получиться

  • --rm оқу контейнерін аяқталған соң жояды.
  • Команда завершается предсказуемым кодом.
  • Результат можно повторить на чистой среде.

Соберите целое по опорной схеме

Опорная схема 7

Проведите пальцем или карандашом по четырём блокам и расскажите весь урок одним связным объяснением.

Воспроизведите без подсказки

  1. Закройте схему и нарисуйте четыре блока по памяти.
  2. Объясните каждый переход словами «потому что».
  3. Дайте определение одному новому термину, не повторяя текст дословно.
  4. Назовите один сигнал, который доказывает результат.

Найдите и исправьте ошибку

Ошибка: «Контейнер — лёгкая виртуальная машина». Исправление: обычно контейнер делит ядро хоста; VM запускает отдельную гостевую ОС.

Задание

Теперь соберите тот же смысл самостоятельно. Можно смотреть на опорную схему; цель — не экзамен на память, а воспроизводимый результат.

Обязательное. Напишите команды, которые запускают контейнер alpine:3.23, печатают его hostname и автоматически удаляют контейнер после выхода. Отправьте только команды или скрипт POSIX sh без реальных ключей и токенов.

Критерии готовности

  • Вы понимаете каждую запускаемую строку.
  • Повторный запуск даёт ожидаемый результат или безопасно объяснённое отличие.
  • В выводе нет настоящих ключей, токенов и паролей.
  • Вы можете показать факт, который подтверждает успех.

Если проверка не прошла, зафиксируйте ожидаемое и фактическое, вернитесь к одному разорванному звену опоры и повторите. Ошибка не отнимает у вас право продолжать обучение.

По желанию. Запишите один возможный отказ и сигнал, по которому вы его заметите.

Открытая перспектива

Следующий урок добавит новую опору: Слои образа, теги и жизненный цикл контейнера.

Оглавление курса

Если вы нашли ошибку или опечатку в тексте статьи, то сообщите нам об этом

Проверить задание

Сначала решите и запустите в VS Code — редактор покажет ошибку на месте. Готовое решение вставьте сюда. Проверяет модель: она укажет на ошибку, но не даст готовый ответ.

Чтобы проверить, нужно войти. Войти

Комментарии (0)

Пока нет комментариев. Будьте первым.