РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗dcPmStMg 5 of 81 menu
◀ ▶

Образ в Docker

Сайт на вашем компьютере открывается. Вы копируете коллеге папку с его файлами. У коллеги страница не стартует. У вас стоит PHP одной версии и включено нужное расширение. У коллеги PHP другой, расширения нет. Вы пишете список: поставь такую-то версию, включи такое-то расширение. Коллега ставит соседнюю версию, сайт всё равно молчит. На сервере то же самое. Там PHP уже занят другим проектом, и менять его нельзя.

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

Такой набор называется образом. Образ лежит на диске хоста файлами. Программа в нём не запущена. Это не работающий сайт и не окно, которое можно открыть. Это заготовка: всё, без чего сайт не стартует, уже сложено вместе. Снаружи, в обычной системе, этого PHP может не быть вообще. Сайту хватает того, что внутри заготовки.

У заготовки есть имя. По имени служба отличает один образ от другого. Имя само по себе содержимое не меняет. Два разных имени - это два разных набора файлов.

Пока сайт только лежит в образе, он ничего не пишет и не удаляет. Запуск идёт не в самом образе. Служба делает из заготовки контейнер, и программа работает уже там. Новый файл, который она создала, остаётся в контейнере. Образ на диске тот же, что был до запуска. Иначе один запуск испортил бы заготовку. Следующий человек получил бы не исходный сайт, а чужие правки.

Из одной заготовки делают сколько угодно контейнеров. Каждый в начале видит те же файлы, что лежат в образе. Файл, появившийся в первом контейнере, второй не видит. Он тоже начался с исходного набора, а не с копии соседа. Сколько контейнеров ни создать, сам образ на диске остаётся прежним.

Поэтому на другой компьютер везут образ, а не текст «поставьте эти пакеты в этих версиях». Версии внутри уже совпадают с теми, на которых сайт заработал у вас.

У скрипта нет своего PHP: ему нужна конкретная версия и одно расширение. Перечислите, что кроме самого скрипта должно лежать в его образе.

Программа в контейнере создала новый файл. Напишите, изменился ли от этого образ, и где остался новый файл.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить