Изображения Docker - виды.Тонкий против стройного стрейч против стрейч против альпийский - PullRequest
0 голосов
/ 02 марта 2019

Я хочу подобрать образ докера для создания java-приложения и посмотреть варианты доступных изображений OpenJDK.Я смотрю здесь https://github.com/docker-library/openjdk/tree/master/8/jdk и вижу альпийские, стройные и окна.Каковы различия между ними и что дает каждый вариант?

1 Ответ

0 голосов
/ 30 марта 2019

Для документации док-библиотеки (цитата и ссылки ниже), вот краткая информация:

  • openjdk:<version>

Изображение по умолчанию.Используйте его, если не уверены.

  • openjdk:<version>-stretch и openjdk:<version>-jessie

jessie или stretch являются кодовыми именами комплектов для выпусковиз Debian и укажите, на каком выпуске основан образ.

  • openjdk:<version>-alpine

Точно так же этот образ основан на Alpine Linux , поэтому является очень маленьким базовым образом.Рекомендуется, если вам нужно, чтобы размер изображения был как можно меньше.Предостережение заключается в том, что в нем используются некоторые необычные библиотеки, но это не должно быть проблемой для большинства программ.В случае сомнений проверьте официальные документы ниже.

  • openjdk:<version>-slim

Этот образ содержит только минимальные пакеты, необходимые для запуска Java (и являетсянапример, отсутствует множество библиотек Java, связанных с пользовательским интерфейсом).Если вы не работаете в среде, где only будет развернут образ openjdk и у вас есть ограничения по пространству, рекомендуется использовать образ по умолчанию поверх этого.

  • openjdk:<version>-windowsservercore

Этот образ основан на Windows Server Core (microsoft/windowsservercore) .



Полные документы ( версия показана ниже здесь , последняя версия здесь ):

Варианты изображений

Изображения openjdkбывают разных вкусов, каждый из которых предназначен для конкретного случая использования.

openjdk:<version>

Это изображение де-факто.Если вы не уверены в своих потребностях, возможно, вы захотите воспользоваться этим.Он предназначен для использования как в качестве одноразового контейнера (смонтируйте исходный код и запустите контейнер для запуска приложения), так и в качестве основы для создания других образов.

Некоторые из этих тегов могутесть имена, как Джесси или растянуть в них.Это кодовые имена комплектов для выпусков Debian и указывают, на каком выпуске основан образ.

openjdk:<version>-alpine

Это изображение основано на популярном Проект Alpine Linux , доступный в официальном образе alpine .Alpine Linux намного меньше, чем большинство базовых образов дистрибутива (~ 5 МБ), и, следовательно, приводит к гораздо более тонким изображениям в целом.

Этот вариант настоятельно рекомендуется, когда желаемый конечный размер изображения настолько мал, насколько это возможно.Главное предостережение, которое следует отметить, это то, что он использует musl libc вместо glibc и friends , поэтому некоторые программы могут столкнуться с проблемами в зависимости от глубины их требований к libc.Тем не менее, большинство программ не имеют проблемы с этим, поэтому этот вариант, как правило, является очень безопасным выбором.См. эту ветку комментариев Hacker News для более подробного обсуждения проблем, которые могут возникнуть, и некоторых сравнений за и против использования изображений на основе Alpine.

Чтобы минимизировать размер изображения, редко встречаются дополнительные связанныеинструменты (такие как git или bash) для включения в изображения на основе Alpine.Используя этот образ в качестве основы, добавьте нужные вещи в свой собственный файл Dockerfile (см. alpine описание изображения для примеров того, как устанавливать пакеты, если вы незнакомы).

openjdk:<version>-windowsservercore

Этот образ основан на Windows Server Core (microsoft/windowsservercore) .Таким образом, он работает только в тех местах, где работает этот образ, например в Windows 10 Professional / Enterprise (Anniversary Edition) или Windows Server 2016.

Информацию о том, как запустить Docker в Windows, см. В соответствующих разделах.Руководство по быстрому запуску, предоставленное Microsoft:

openjdk:<version>-slim

Этот образ устанавливает пакет OpenJDK -headless, поэтому отсутствуют многие библиотеки Java, связанные с пользовательским интерфейсом, и некоторые распространенные пакеты.содержится в теге по умолчанию.Он содержит только минимальные пакеты, необходимые для запуска Java.Если вы не работаете в среде, где only будет развернут образ openjdk, и у вас есть ограничения по пространству, мы настоятельно рекомендуем использовать образ этого хранилища по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...