Estou procurando uma imagem docker para construir um aplicativo java e vendo as variantes das imagens OpenJDK disponíveis. Estou procurando aqui https://github.com/docker-library/openjdk/tree/master/8/jdk e veja alpine, slim e windows. Quais são as diferenças entre eles e o que cada variante oferece?
java
docker
dockerfile
mailtobash
fonte
fonte
FROM
linhas dos Dockerfiles no link que você forneceu também é informativo. As imagens Alpine são muito menores do que as imagens baseadas em Debian, mas também podem encontrar problemas de compatibilidade de várias maneiras.Respostas:
De acordo com os documentos da biblioteca docker (citação e links abaixo), aqui está um resumo:
openjdk:<version>
A imagem de fato. Use-o se não tiver certeza.
openjdk:<version>-buster
,openjdk:<version>-stretch
eopenjdk:<version>-jessie
buster
,jessie
oustretch
são os nomes de código do conjunto para versões do Debian e indicam em qual versão a imagem é baseada.openjdk:<version>-alpine
Da mesma forma, esta imagem é baseada no Alpine Linux , sendo, portanto, uma imagem de base muito pequena. É recomendado se você precisa que o tamanho da imagem seja o menor possível. A ressalva é que ele usa algumas bibliotecas incomuns, mas não deve ser um problema para a maioria dos softwares. Em caso de dúvida, verifique a documentação oficial abaixo.
openjdk:<version>
(de 12 em diante),openjdk:<version>-oracle
eopenjdk:<version>-oraclelinux7
Começando com
openjdk:12
a imagem padrão, bem como as variantes-oracle
e-oraclelinux7
, são baseadas na imagem oficial do Oracle Linux 7 . Os binários do OpenJDK na imagem padrão, bem como as variantes-oracle
e-oraclelinux7
, são criados pela Oracle e originados da comunidade OpenJDK .openjdk:<version>-slim
Esta imagem contém apenas os pacotes mínimos necessários para executar Java (e não contém muitas das bibliotecas Java relacionadas à IU, por exemplo). A menos que você esteja trabalhando em um ambiente onde apenas a
openjdk
imagem será implantada e você tenha restrições de espaço, a imagem padrão é recomendada em vez desta.openjdk:<version>-windowsservercore
Esta imagem é baseada no Windows Server Core (
microsoft/windowsservercore
) .Documentos completos ( versão mostrada abaixo aqui , versão mais recente aqui ):
fonte
Escolha uma imagem de docker base que atenda às suas necessidades e lembre-se de que o tamanho da imagem também é um aspecto importante .
A imagem pode ser considerada um conjunto de instruções sobre como criar o container. No Docker, uma imagem pode ser herdada de (ou baseada em) outra imagem, adicionando instruções adicionais sobre as básicas. Cada imagem consiste em várias camadas, que são efetivamente imutáveis.
Por favor, leia o artigo sobre como criar o fluxo de construção perfeito do Java Docker .
Para executar um aplicativo java, você precisa pelo menos do JRE. Por exemplo, para um projeto de primavera, sua imagem pode ser baseada em
slim Alpine Linux with OpenJDK JRE
:Além disso, você pode usar
docker history yourImageName
para ver todas as camadas (e seus tamanhos) que compõem sua imagem.fonte