From 14d2257a6d28fed26b9a94e8cd31b19d5eb94386 Mon Sep 17 00:00:00 2001 From: nataliagranato Date: Mon, 2 Sep 2024 22:22:12 -0300 Subject: [PATCH] Add: multiple dockerfile approaches --- alpine/REAME.md | 13 +++++++++++++ distroless/README.md | 23 +++++++++++++++++++++++ multi-stage/REAME.md | 3 +++ traditional/README.md | 3 +++ 4 files changed, 42 insertions(+) create mode 100644 alpine/REAME.md create mode 100644 distroless/README.md create mode 100644 multi-stage/REAME.md create mode 100644 traditional/README.md diff --git a/alpine/REAME.md b/alpine/REAME.md new file mode 100644 index 0000000..53d69b3 --- /dev/null +++ b/alpine/REAME.md @@ -0,0 +1,13 @@ +# Vantagens de usar Alpine Linux + +Alpine Linux é uma distribuição Linux leve e segura. Ela é muito popular no mundo do Docker, pois as imagens Alpine são menores e mais seguras que as imagens baseadas em outras distribuições Linux. + +## Por que usar Alpine Linux? + +- **Tamanho da imagem:** as imagens Alpine são menores que as imagens baseadas em outras distribuições Linux, como Ubuntu e CentOS. Isso significa que as imagens Alpine são mais rápidas para baixar, enviar e executar. + +- **Segurança:** Alpine Linux é conhecido por sua segurança. Ele é projetado com a segurança em mente e tem um histórico de correção rápida de vulnerabilidades. + +- **Eficiência:** Alpine Linux é otimizado para ser leve e eficiente. Ele é projetado para ser executado em ambientes com recursos limitados, como contêineres Docker. + +- **Comunidade ativa:** Alpine Linux tem uma comunidade ativa e crescente. Isso significa que você pode obter suporte e ajuda facilmente se precisar. diff --git a/distroless/README.md b/distroless/README.md new file mode 100644 index 0000000..7d7e1cf --- /dev/null +++ b/distroless/README.md @@ -0,0 +1,23 @@ +# O que são imagens distroless? + +Imagens distroless são imagens Docker que contêm apenas o aplicativo e suas dependências, sem um sistema operacional. Isso torna a imagem mais segura e menor. + +A vantagem de usar imagens distroless é que elas são menores e mais seguras. Como não há um sistema operacional dentro da imagem, não há pacotes desnecessários que possam ser explorados por um invasor. + +## O nosso exemplo de imagem distroless + +- **Faça o pull da imagem:** + +``` +docker pull nataliagranato/my-app:v4.0.0 +``` + +- **Execute o contêiner:** + +``` +docker run --rm nataliagranato/my-app:v4.0.0 +``` + +**Prepare-se para ver a mensagem de saída do nosso aplicativo.** + +Você pode ver que a imagem é bem menor que a imagem anterior, pois não temos um sistema operacional dentro dela, apenas o binário do nosso aplicativo. diff --git a/multi-stage/REAME.md b/multi-stage/REAME.md new file mode 100644 index 0000000..d6e5ecb --- /dev/null +++ b/multi-stage/REAME.md @@ -0,0 +1,3 @@ +# Multi stage build + +Este é um exemplo de Dockerfile que utiliza a técnica de multi-stage build. Nessa abordagem utilizamos múltiplos estágios para construir a imagem Docker. No primeiro estágio, utilizamos uma imagem com um sistema operacional completo para compilar o código-fonte do nosso aplicativo. No segundo estágio, copiamos o binário gerado no primeiro estágio para uma imagem menor e mais segura, sem um sistema operacional. diff --git a/traditional/README.md b/traditional/README.md new file mode 100644 index 0000000..a5903c3 --- /dev/null +++ b/traditional/README.md @@ -0,0 +1,3 @@ +# Um Dockerfile tradicional + +Este é um exemplo de Dockerfile tradicional, que é um arquivo de texto que contém uma série de instruções para a construção de uma imagem Docker. Nele utilizamos um sistema operacional completo, o que torna a imagem maior e menos segura. Não usamos a abordagem de multi-stage build, que é uma técnica para reduzir o tamanho das imagens Docker. Tampouco um sistema operacional minimalista, como o Alpine Linux.