Como executar um contêiner baseado no Alpine Linux

DockerBeginner
Pratique Agora

Introdução

Este tutorial guiará você pelo processo de execução de um contêiner Docker baseado na distribuição Alpine Linux. O Alpine Linux é uma escolha popular para contêineres Docker devido ao seu tamanho reduzido e design focado em segurança. Ao final deste tutorial, você será capaz de criar e personalizar seus próprios contêineres Docker baseados em Alpine Linux, otimizando seu fluxo de trabalho Docker.

Apresentando o Alpine Linux

O Alpine Linux é uma distribuição Linux leve, de código aberto e focada em segurança. É projetado para ser pequeno, simples e eficiente, tornando-o uma excelente escolha para ambientes containerizados, sistemas embarcados e aplicações baseadas em nuvem.

Uma das características principais do Alpine Linux é o uso da biblioteca C musl em vez da mais comum glibc. Isso resulta em um tamanho menor e tempos de inicialização mais rápidos, tornando-o adequado para execução em contêineres. Além disso, o Alpine Linux utiliza o gerenciador de pacotes apk, projetado para ser rápido e eficiente, contribuindo ainda mais para sua leveza.

Outro aspecto notável do Alpine Linux é seu foco em segurança. A distribuição inclui diversas funcionalidades voltadas à segurança, como o uso dos patches de kernel PaX e grsecurity, que ajudam a proteger contra vulnerabilidades de segurança comuns.

Para demonstrar o uso do Alpine Linux, vamos executar um contêiner simples baseado nesta distribuição:

## Baixe a imagem Alpine Linux
docker pull alpine:latest

## Execute um contêiner Alpine Linux
docker run -it alpine:latest /bin/ash

No exemplo acima, primeiro baixamos a imagem mais recente do Alpine Linux do repositório Docker Hub. Em seguida, executamos um contêiner baseado nessa imagem, usando o shell /bin/ash como ponto de entrada.

Dentro do contêiner, você pode explorar o ambiente Alpine Linux e observar sua leveza:

/ ## uname -a
Linux 8b3d9f8a3d95 5.10.104-linuxkit #1 SMP Fri Mar 25 18:02:00 UTC 2022 x86_64 Linux
/ ## apk add --no-cache htop
(1/5) Instalando ncurses-terminfo-base (6.3_p20220423-r0)
(2/5) Instalando ncurses-libs (6.3_p20220423-r0)
(3/5) Instalando ncurses (6.3_p20220423-r0)
(4/5) Instalando util-linux (2.38-r0)
(5/5) Instalando htop (3.1.1-r0)
Executando busybox-1.35.0-r19.trigger
OK: 7 MiB em 16 pacotes
/ ## htop

Neste exemplo, instalamos a ferramenta de monitoramento de sistema htop usando o gerenciador de pacotes apk, que é o gerenciador de pacotes padrão para o Alpine Linux. O processo de instalação é rápido e eficiente, demonstrando a leveza da distribuição.

Executando um Contêiner Alpine Linux

Iniciar um Contêiner Alpine Linux

Para executar um contêiner Alpine Linux, você pode usar o comando docker run. Aqui está um exemplo:

docker run -it alpine:latest /bin/ash

Neste comando, estamos usando as seguintes opções:

  • -i: Mantém o STDIN aberto, mesmo se não estiver conectado.
  • -t: Aloca um pseudo-TTY.
  • alpine:latest: O nome da imagem Alpine Linux a ser usada.
  • /bin/ash: O comando a ser executado dentro do contêiner.

O shell ash é o shell padrão no Alpine Linux, e oferece uma experiência semelhante ao shell bash, mais comumente usado.

Explorando o Contêiner Alpine Linux

Depois que o contêiner estiver em execução, você pode explorar o ambiente Alpine Linux. Aqui estão alguns comandos que você pode tentar:

/                                    ## uname -a
Linux 8b3d9f8a3d95 5.10.104-linuxkit #1 SMP Fri Mar 25 18:02:00 UTC 2022 x86_64 Linux
/                                    ## apk add --no-cache htop
/                                    ## htop

Esses comandos mostrarão a versão do kernel, instalarão a ferramenta de monitoramento de sistema htop e, em seguida, executarão htop para observar os processos em execução no contêiner.

Saindo do Contêiner

Para sair do contêiner, você pode usar o comando exit:

/ ## exit

Isso interromperá o contêiner e retornará você ao prompt de comando do sistema host.

Reiniciando o Contêiner

Se precisar reiniciar o contêiner, você pode usar o comando docker start:

docker start -i 8b3d9f8a3d95

Substitua 8b3d9f8a3d95 pelo ID ou nome do contêiner Alpine Linux.

Compreendendo como iniciar, explorar e gerenciar contêineres Alpine Linux, você pode começar a aproveitar os benefícios desta distribuição Linux leve e segura em suas aplicações baseadas em Docker.

Personalizando o Contêiner Alpine Linux

Criando uma Imagem Alpine Linux Personalizada

Para personalizar o contêiner Alpine Linux, você pode criar uma imagem Docker personalizada baseada na imagem base Alpine Linux. Aqui está um exemplo de Dockerfile:

FROM alpine:latest

## Instalar pacotes adicionais
RUN apk add --no-cache nginx

## Copiar arquivos de configuração personalizados
COPY nginx.conf /etc/nginx/nginx.conf

## Expor a porta necessária
EXPOSE 80

## Definir o comando padrão
CMD ["nginx", "-g", "daemon off;"]

Neste Dockerfile, nós:

  1. Iniciamos com a imagem base Alpine Linux mais recente.
  2. Instalamos o servidor web Nginx usando o gerenciador de pacotes apk.
  3. Copiamos um arquivo de configuração personalizado do Nginx para o contêiner.
  4. Expomos a porta 80 para o servidor web Nginx.
  5. Definimos o comando padrão para iniciar o servidor web Nginx.

Para construir a imagem personalizada, execute o seguinte comando:

docker build -t my-alpine-nginx .

Isso criará uma nova imagem Docker chamada my-alpine-nginx baseada no Dockerfile no diretório atual.

Executando o Contêiner Alpine Linux Personalizado

Depois de ter a imagem personalizada, você pode executar um contêiner baseado nela:

docker run -d -p 8080:80 my-alpine-nginx

Neste comando, nós:

  • -d: Executa o contêiner em modo desacoplado (em segundo plano).
  • -p 8080:80: Mapeia a porta 8080 no host para a porta 80 no contêiner.
  • my-alpine-nginx: O nome da imagem Alpine Linux personalizada que criamos.

Agora, você pode acessar o servidor web Nginx em execução no contêiner visitando http://localhost:8080 no seu navegador web.

Ao personalizar o contêiner Alpine Linux, você pode adaptá-lo às suas necessidades específicas, como instalar software adicional, copiar arquivos de configuração ou expor portas diferentes. Essa flexibilidade torna o Alpine Linux uma excelente escolha para construir aplicações baseadas em Docker eficientes e leves.

Resumo

Neste tutorial abrangente sobre Docker, você aprendeu a executar um contêiner baseado na distribuição leve e segura Alpine Linux. Explorou o processo de criação de um contêiner Alpine Linux, bem como sua personalização para atender às suas necessidades específicas. Ao aproveitar o poder do Docker e os benefícios do Alpine Linux, você pode otimizar seus processos de desenvolvimento e implantação, melhorando a eficiência de suas aplicações baseadas em Docker.