Nano Hash - криптовалюты, майнинг, программирование

В чем разница между слоем и изображением в докере?

Я знаю, что изображение состоит из многих слоев. например, если вы запустите «история докеров [изображение]», вы можете получить последовательность идентификаторов, и идентификатор вверху совпадает с идентификатором изображения, остальные идентификаторы являются идентификаторами слоя.

в этом случае, эти идентификаторы остальных слоев соответствуют некоторым другим изображениям? если это правда, могу ли я просмотреть слой как изображение?

23.09.2015

Ответы:


1

Слои составляют файл. система как для образов Docker, так и для контейнеров Docker.

Именно благодаря слоям, когда вы извлекаете изображение, у вас в итоге не остается чтобы загрузить всю свою файловую систему. Если у вас уже есть другое изображение, в котором есть некоторые слои изображения, которое вы извлекаете, фактически загружаются только отсутствующие слои.

соответствуют ли эти идентификаторы остальных слоев некоторым другим изображениям?

да, они такие же, как изображения, но без тега для их идентификации.

можно ли просмотреть слой как изображение?

да


витрина

docker pull busybox
docker history busybox
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
d7057cb02084        39 hours ago        /bin/sh -c #(nop) CMD ["sh"]                    0 B
cfa753dfea5e        39 hours ago        /bin/sh -c #(nop) ADD file:6cccb5f0a3b3947116   1.096 MB

Теперь создайте новый контейнер из слоя cfa753dfea5e, как если бы это было изображение:

docker run -it cfa753dfea5e sh -c "ls /"
bin   dev   etc   home  proc  root  sys   tmp   usr   var
23.09.2015

2

Слои и изображения не являются строго синонимами. https://windsock.io/explaining-docker-image-ids/

Когда вы извлекаете образ из концентратора Docker, «слои» имеют «идентификаторы изображения». Когда вы фиксируете изменения в локально созданных изображениях, эти слои будут иметь идентификаторы изображений. До тех пор, пока вы не нажмете на Dockerhub. Только изображение листа будет иметь идентификатор изображения для всех остальных пользователей, загружающих это изображение, которое вы загрузили.

10.06.2019

3

Из документации по докеру:

Образ Docker — это шаблон только для чтения. Например, образ может содержать операционную систему Ubuntu с установленным Apache и вашим веб-приложением. Образы используются для создания контейнеров Docker. Docker предоставляет простой способ создания новых образов или обновления существующих образов, или вы можете загрузить образы Docker, которые уже созданы другими людьми. Образы Docker — это компонент сборки Docker. Каждое изображение состоит из серии слоев. Docker использует объединенные файловые системы для объединения этих слоев в один образ. Объединенные файловые системы позволяют файлам и каталогам отдельных файловых систем, известных как ветви, прозрачно накладываться друг на друга, образуя единую согласованную файловую систему.

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

Мне нравится смотреть на эти вещи как на типы резервных копий. Мы можем создавать полные резервные копии, а затем создавать инкрементные резервные копии. Полная резервная копия не изменяется (хотя в некоторых системах для уменьшения времени восстановления после каждой инкрементной резервной копии полная резервная копия изменяется, чтобы содержать изменения, но для данного обсуждения мы можем игнорировать этот случай), а только изменения резервируются отдельным способом. Таким образом, у нас могут быть разные уровни резервных копий, как у нас есть разные слои изображений.

РЕДАКТИРОВАТЬ: просмотрите следующие ссылки для получения дополнительной информации:

Образ Docker и контейнер

Поиск слоев и размеров слоев для каждого образа Docker

23.09.2015
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..