Linux Labs

Контейнеры: Docker и compose / Ступень 4 из 11

Dockerfile: свой образ

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 1 из 7 · на машине · 5 мин

Правка не дошла

Чему научишься

  • Собирать образ по Dockerfile командой docker build и запускать контейнер из новой версии.
  • Читать слои образа и вывод сборки — какие шаги взяты из кэша, а какие выполнены заново.
  • Писать Dockerfile на основе готового образа — FROM, COPY и команда старта.

Сайт компании работает в контейнере web: busybox отдаёт страницу на порту 8080. Образ для контейнера собрали из каталога ~/site. Коллега поправил там index.html — заменил Site v1 на Site v2 — и перезапустил контейнер.

Повтори его проверку: посмотри файл, перезапусти контейнер и открой страницу. Команды docker на этой машине идут через sudo. «Начать» запустит docker и контейнер.

Упражнение · посмотреть

Перезапусти контейнер после правки

В ~/site выведи index.html, перезапусти контейнер web, запроси страницу на порту 8080 и выведи index.html внутри контейнера.

Сначала предположи

index.html в ~/site уже исправлен. Что покажет curl после перезапуска контейнера?

Теперь начни упражнение, выполни команду и сверь прогноз с выводом.

Войти и начать Машина доступна после входа
Проверь себя 1 вопрос

Откуда контейнер web берёт страницу, которую отдаёт?

  • curl ничего не запоминает между запусками: каждый раз он спрашивает сервер заново, и сервер отдал Site v1.

  • docker exec web cat /www/index.html прочитал файл с диска контейнера, и в нём тоже Site v1.

  • Тогда curl напечатал бы Site v2, как cat index.html в ~/site. Он напечатал Site v1 — как файл в /www контейнера.

Контейнер отдаёт свой файл /www/index.html, а в нём Site v1.

Ubuntu 24.04
Загрузка…