Разберёшь рецепт образа сайта и доставишь правку: соберёшь новый образ и контейнер из него.
Образ site:1 собран по рецепту — файлу Dockerfile в ~/site. Каждая строка — инструкция сборщику:
| Инструкция | Что делает при сборке |
|---|---|
FROM busybox |
берёт за основу готовый образ busybox |
WORKDIR /www |
создаёт каталог /www и делает его текущим |
COPY index.html . |
копирует файл из каталога сборки в образ |
RUN … |
выполняет команду внутри будущего образа — здесь пишет время сборки в built.txt |
CMD […] |
задаёт команду старта контейнера; без своей CMD образ берёт её у основы |
Собирает образ docker build:
-t site:2 — имя нового образа. Точка в конце — контекст сборки: каталог, который docker целиком передаёт сборщику (в выводе сборки — шаг [internal] load build context). COPY видит файлы только из него.
COPY срабатывает один раз, при сборке: файл ложится в образ копией, и любой контейнер из site:1 получает ту же Site v1. docker restart перезапускает процесс в том же контейнере, с теми же файлами. Поэтому правка в ~/site доходит до сайта в два шага: новый образ, потом новый контейнер из него.
Вывод сборки — строки с номерами #1, #2…: сначала служебные шаги [internal], потом инструкции Dockerfile по порядку — [1/4] FROM …, [2/4] WORKDIR /www. CMD своего шага не получает: это настройка образа.
Доставь правку на сайт
Собери из ~/site образ site:2 и замени контейнер web новым из этого образа — с тем же именем и портом 8080.
Цели · 0 из 2
- Собрать образ site:2 из ~/site ещё не выполнена
- Запустить web из нового образа ещё не выполнена