Предположим, у меня есть частный репозиторий Docker в myrepo.myhost.com
.
Теперь я создаю образ из очень большого общедоступного образа реестра Docker.Предположим, он называется bandwidthguy/five-gigabyte-image:latest
.
У меня есть Dockerfile, который выполняет одну простую вещь, например:
FROM bandwidthguy/five-gigabyte-image
COPY some-custom-file /etc/bigstuff
Я создаю образ:
docker build -t myversionof-five-gigabyte-image .
ипометьте его.
docker tag myversionof-five-gigabyte-image:latest myrepo.myhost.com/myversions/five-gigabyte-image:latest
Теперь я нажимаю на репо.
docker push myrepo.myhost.com/myversions/five-gigabyte-image
Я заметил, что при этом все большое исходное изображение помещается в мой репозиторий.
Что меня интересует, так это то, что Docker каким-то образом может только выдвинуть изображение разница , а затем вытянуть другие слои из соответствующих источников при извлечении изображения.Передача всего изображения в мое частное хранилище может вызвать проблемы:
- Если частное хранилище размещено на моем домашнем интернет-провайдере, мой ограниченный восходящий поток может привести к серьезному отставанию при извлечении изображения во время выхода из строя.
- Если частный репозиторий размещен на размещенной службе, он может иметь дисковую квоту, и я использую 5 ГБ этой квоты без необходимости.
- Требуется много времени, чтобы протолкнуть изображение, особенно если у меня естьмедленная скорость загрузки в то время.
Может быть, вы просто не можете разместить детали на разных серверах, но я подумал, стоит спросить, можно ли это сделать.Было бы разумно, чтобы вы могли хранить все слои на своем собственном хосте для запуска сервера с воздушным зазором, но кажется, что вы не можете извлечь исходные изображения из реестра.