Explorando Camadas de Imagens Docker
Compreendendo a Estrutura em Camadas
Como mencionado anteriormente, as imagens Docker são compostas por múltiplas camadas, cada uma representando uma alteração ou modificação específica na imagem. Estas camadas são empilhadas umas sobre as outras, criando a imagem final.
Visualizando Camadas de Imagens
Pode usar o comando docker image history para visualizar as camadas de uma imagem Docker. Este comando fornece informações sobre cada camada, incluindo o tamanho, a hora de criação e o comando usado para criar a camada.
$ docker image history nginx:latest
IMAGE CREATED CREATED BY SIZE COMMENT
e1b5bf1aa7e6 3 weeks ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon... 0B
<missing> 3 weeks ago /bin/sh -c #(nop) EXPOSE 80 0B
<missing> 3 weeks ago /bin/sh -c #(nop) STOPSIGNAL SIGTERM 0B
<missing> 3 weeks ago /bin/sh -c #(nop) VOLUME [/var/cache/nginx] 0B
<missing> 3 weeks ago /bin/sh -c #(nop) ADD file:0fd5f7c8b2cb9173... 133MB
Esta saída mostra as camadas da imagem nginx:latest, incluindo o tamanho, a hora de criação e o comando usado para criar cada camada.
Inspecionando Camadas de Imagens
Também pode usar o comando docker image inspect para visualizar informações detalhadas sobre uma imagem Docker, incluindo suas camadas. A saída deste comando inclui uma secção RootFS que lista as camadas da imagem.
$ docker image inspect nginx:latest
[
{
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:e1b5bf1aa7e6a8e1a9e2d9a6d5a7f6d7d5f6d7d5f6d7d5f6d7d5f6d7d5f6d7d5",
"sha256:e1b5bf1aa7e6a8e1a9e2d9a6d5a7f6d7d5f6d7d5f6d7d5f6d7d5f6d7d5f6d7d5",
"sha256:e1b5bf1aa7e6a8e1a9e2d9a6d5a7f6d7d5f6d7d5f6d7d5f6d7d5f6d7d5f6d7d5",
"sha256:e1b5bf1aa7e6a8e1a9e2d9a6d5a7f6d7d5f6d7d5f6d7d5f6d7d5f6d7d5f6d7d5",
"sha256:e1b5bf1aa7e6a8e1a9e2d9a6d5a7f6d7d5f6d7d5f6d7d5f6d7d5f6d7d5f6d7d5"
]
}
}
]
Esta saída mostra as camadas da imagem nginx:latest, identificadas pelos seus IDs de camada únicos.
Cache de Camadas
Um dos principais benefícios da arquitetura em camadas é a capacidade de armazenar em cache camadas individuais. Quando constrói uma imagem, o Docker armazena em cache as camadas que não foram alteradas, o que pode acelerar significativamente o processo de construção. Isto é especialmente útil quando está a fazer alterações incrementais à sua aplicação e precisa de reconstruir a imagem.
Compreendendo a estrutura das imagens Docker e o conceito de camadas, pode gerir e otimizar eficazmente os seus ambientes contenorizados.