Skip to content

Docker image

Docker образ - это стандартизированный, исполняемый пакет, который включает в себя всё необходимое для запуска приложения, включая код, среду выполнения, библиотеки, зависимости и настройки. Образ представляет собой основу для создания и запуска контейнеров в Docker.

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

Docker images - шаблонные файлы, доступные только для чтения. Их можно перемещать и передавать. В отличие от виртуальных машин, эти файлы можно хранить в системе управления версиями. Более того, можно воспользоваться командой docker diff, чтобы увидеть различия между двумя образами. Каждый образ состоит из нескольких уровней, или слоев, которые могут совместно использоваться несколькими образами.

Ключевые характеристики Docker образа:

  • Структура слоев: Образ состоит из набора слоев, которые представляют собой изменения файловой системы. Это делает образы эффективными в использовании дискового пространства и ускоряет операции создания и обновления.
  • Инструкции Dockerfile: Для создания образа используется файл Dockerfile, который содержит инструкции по тому, как собрать образ. Dockerfilr может включать установку пакетов, копирование файлов, настройку переменных окружения и другие действия.
  • Кэширование: Docker кэширует результаты выполнения каждой инструкции Dockerfile, что позволяет быстро пересобирать образ с обновлениями, при этом повторно используя кэшированные результаты.
  • Эффективность и переносимость: Образы независимы от хостовой системы, что обеспечивает их переносимость между различными средами. Они также компактны и удобны для хранения и передачи.

Создание Docker образа включает в себя создание Dockerfile, выполнение инструкций в Dockerfile и сборку образа с помощью команды docker build. Полученный образ может быть запущен на любой системе, поддерживающей Docker, в виде контейнера, который включает в себя все необходимое для работы приложения.

Слои docker-image

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

В этом можно убедится введя команду: ls /var/lib/docker/overlay2. Использование многослойной структуры позволяет эфективно использовать дисковое пространство

подробнее о создании docker images