Я ищу образ докера для создания Java-приложения и смотрю на варианты доступных образов OpenJDK. Я смотрю здесь https://github.com/docker-library/openjdk/tree/master/8/jdk и вижу alpine, slim и windows. В чем разница между ними и что дает каждый вариант?
java
docker
dockerfile
mailtobash
источник
источник
FROM
строк Dockerfiles в приведенной вами ссылке также является информативным. Образы Alpine намного меньше, чем образы на основе Debian, но также могут вызывать проблемы совместимости по-разному.Ответы:
Для документации библиотеки докеров (цитата и ссылки ниже) вот краткое изложение:
openjdk:<version>
Фактическое изображение. Используйте его, если не уверены.
openjdk:<version>-buster
,openjdk:<version>-stretch
иopenjdk:<version>-jessie
buster
,jessie
илиstretch
являются кодовыми названиями пакетов для выпусков Debian и указывают, на каком выпуске основан образ.openjdk:<version>-alpine
Точно так же этот образ основан на Alpine Linux , поэтому является очень маленьким базовым образом. Рекомендуется, если вам нужен размер изображения как можно меньше. Предостережение в том, что он использует некоторые необычные библиотеки, но не должно быть проблемой для большинства программ. Если сомневаетесь, проверьте официальную документацию ниже.
openjdk:<version>
(с 12 лет),openjdk:<version>-oracle
иopenjdk:<version>-oraclelinux7
Начиная с
openjdk:12
изображением по умолчанию, а также-oracle
и-oraclelinux7
варианты основаны на официальном Oracle Linux 7 образа . В OpenJDK двоичные файлы в изображения по умолчанию, а также-oracle
и-oraclelinux7
варианты построены Oracle и получены из сообщества OpenJDK .openjdk:<version>-slim
Этот образ содержит только минимальные пакеты, необходимые для запуска Java (например, отсутствуют многие библиотеки Java, связанные с пользовательским интерфейсом). Если вы не работаете в среде , где только
openjdk
будет развернут образ и у вас есть космические ограничения, изображение по умолчанию рекомендуется над этим.openjdk:<version>-windowsservercore
Этот образ основан на Windows Server Core (
microsoft/windowsservercore
) .Полная документация ( версия показана ниже , последняя версия здесь ):
источник
Выберите базовый образ докера, который соответствует вашим потребностям, и имейте в виду, что размер изображения также является важным аспектом .
Изображение можно рассматривать как набор инструкций по созданию контейнера. В Docker одно изображение может быть унаследовано от другого (или основано на нем) с добавлением дополнительных инструкций поверх базовых. Каждое изображение состоит из нескольких слоев, которые фактически неизменяемы.
Пожалуйста, прочтите статью " Создание идеального процесса сборки Java Docker" .
Для запуска Java-приложения вам понадобится как минимум JRE. Например, для весеннего проекта ваш образ может быть основан на
slim Alpine Linux with OpenJDK JRE
:Также вы можете использовать,
docker history yourImageName
чтобы увидеть все слои (и их размер), из которых состоит ваше изображение.источник