Skip to content

Commit

Permalink
Add: multiple dockerfile approaches
Browse files Browse the repository at this point in the history
  • Loading branch information
nataliagranato committed Sep 3, 2024
1 parent 223ec5c commit 14d2257
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 0 deletions.
13 changes: 13 additions & 0 deletions alpine/REAME.md
Original file line number Diff line number Diff line change
@@ -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.
23 changes: 23 additions & 0 deletions distroless/README.md
Original file line number Diff line number Diff line change
@@ -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.
3 changes: 3 additions & 0 deletions multi-stage/REAME.md
Original file line number Diff line number Diff line change
@@ -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.
3 changes: 3 additions & 0 deletions traditional/README.md
Original file line number Diff line number Diff line change
@@ -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.

0 comments on commit 14d2257

Please sign in to comment.