De acordo com os documentos da biblioteca docker (citação e links abaixo), aqui está um resumo:
A imagem de fato. Use-o se não tiver certeza.
openjdk:<version>-buster
, openjdk:<version>-stretch
eopenjdk:<version>-jessie
buster
, jessie
ou stretch
são os nomes de código do conjunto para versões do Debian e indicam em qual versão a imagem é baseada.
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 .
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 ):
Variantes de imagem
As openjdk
imagens vêm em vários sabores, cada um projetado para um caso de uso específico.
openjdk:<version>
Esta é a imagem de fato. Se você não tem certeza de quais são suas necessidades, provavelmente deseja usar este. Ele é projetado para ser usado como um contêiner descartável (monte seu código-fonte e inicie o contêiner para iniciar seu aplicativo), bem como a base para construir outras imagens.
Algumas dessas tags podem ter nomes como jessie ou stretch. Estes são os nomes de código do pacote para versões do
Debian e indicam em qual versão a imagem é baseada.
openjdk:<version>-alpine
Esta imagem é baseada na popular projeto Alpine Linux , disponível na alpine
imagem oficial . O Alpine Linux é muito menor do que a maioria das imagens de base de distribuição (~ 5 MB) e, portanto, leva a imagens muito mais finas em geral.
Essa variante é altamente recomendada quando o tamanho final da imagem é o menor possível. A principal advertência a ser observada é que ele usa musl libc em vez de glibc e amigos , portanto, certos softwares podem ter problemas dependendo da profundidade de seus requisitos libc. No entanto, a maioria dos softwares não tem problemas com isso, então essa variante geralmente é uma escolha muito segura. Veja este tópico de comentários do Hacker News para mais discussões sobre os problemas que podem surgir e algumas comparações prós / contras do uso de imagens baseadas em Alpine.
Para minimizar o tamanho da imagem, é incomum que ferramentas adicionais relacionadas (como git
ou bash
) sejam incluídas em imagens baseadas em Alpine. Usando esta imagem como base, adicione o que você precisa em seu próprio Dockerfile (veja a alpine
descrição da imagem para exemplos de como instalar pacotes se você não estiver familiarizado).
openjdk:<version>-windowsservercore
Esta imagem é baseada no Windows Server Core ( microsoft/windowsservercore
) . Como tal, só funciona em locais onde essa imagem funciona, como o Windows 10 Professional / Enterprise (Anniversary Edition) ou o Windows Server 2016.
Para obter informações sobre como fazer o Docker funcionar no Windows, consulte o guia de "Início rápido" relevante fornecido pela Microsoft:
openjdk:<version>-slim
Esta imagem instala o -headless
pacote do OpenJDK e, portanto, está faltando muitas das bibliotecas Java relacionadas à IU e alguns pacotes comuns contidos na tag padrão. Ele contém apenas os pacotes mínimos necessários para executar o Java. A menos que você esteja trabalhando em um ambiente onde
apenas a openjdk
imagem será implantada e você tenha restrições de espaço, é altamente recomendável usar a imagem padrão deste repositório.