Para contêineres Docker, o Alpine Linux é a escolha ideal devido à leveza, baixo consumo de RAM e otimização. No entanto, o Ubuntu ainda é o melhor.
Alpine Linux é um sistema operacional Linux gratuito e de código aberto para roteadores, firewalls, VPNs, computadores VoIP, servidores, máquinas virtuais e contêineres. Possui recursos de segurança proativos que evitam a exploração de falhas de segurança no software. A pequena e leve distribuição Linux baseada em musl libc e busybox.
Não vou falar muito sobre Docker aqui porque se você está lendo este tutorial já sabe o que é. Bem, resumindo, Docker é uma plataforma de virtualização conteinerizada que permite executar diferentes máquinas virtuais na forma de contêineres isolados. O melhor é que é leve e fácil de manusear; pode-se simplesmente extrair imagens existentes do Linux ou de aplicativos para configurar um contêiner em hub.docker.com.
Etapa 1: Baixe e configure o Alpine Linux
Se você já tem um Alpine Linux funcionando, basta passar para a próxima etapa e, se não, vá para estelink e baixe um. Alpine Linux está disponível em vários formatos, como Padrão, Estendido com alguns pacotes extras, Net-install, imagem ISO virtual otimizada, para Xen com suporte integrado para hipervisor Xen e em sistema de arquivos raiz mínimo para contêineres. Você pode baixar um conforme sua escolha, no entanto, aqui estamos usando o Alpine Linux Extended versão 3.11.
Após baixar inicialize seu PC ou VirtualBox com ele e execute o comandosetup-alpinepara seguir as etapas de instalação.
Etapa 2: Comando para instalar o Docker no Alpine
Execute o seguinte comando único para buscar pacotes Docker para sua instalação no Alpine.
apk add docker
Etapa 3: a adição do Apk falha com erro de restrições insatisfatórias
Caso após executar o comando acima você receba um erro “apk add falha com restrições insatisfatórias”então temos que adicionar o seguinte repositório ao Alpine.
Edite o arquivo do repositório Alpine:
vi /etc/apk/repositories
Então pressioneInserirbotão no teclado e adicione a seguinte linha no arquivo.
https://dl-cdn.alpinelinux.org/alpine/latest-stable/community
Para salvar e sair primeiro pressioneEsce então digite:wqdepois disso pressione oDigitarbotão.
Quando terminar, execute o comando package update para informar o sistema sobre o repositório atualizado, para que possa indexá-lo.
apk update
Etapa 4: adicionar o serviço Docker ao nível de inicialização do sistema
Para garantir que o serviço do Docker seja iniciado automaticamente sempre que o Alpine for inicializado, temos que adicioná-lo aos serviços do nosso sistema.
rc-update add docker boot
Agora podemos iniciar o serviço Docker
service docker start
Etapa 5: instale o Docker Compose
Usuários que também desejam o Docker Compose no Alpine, primeiro precisam instalar o pip.
apk add py-pip
Poucas dependências de desenvolvimento
apk add python-dev libffi-dev openssl-dev gcc libc-dev make
Finalmente, execute o comando para instalar o docker-compose
pip install docker-compose
Etapa 6: isolar contêineres com um namespace de usuário
adduser -SDHs /sbin/nologin dockremap addgroup -S dockremap echo dockremap:$(cat /etc/passwd|grep dockremap|cut -d: -f3):65536 >> /etc/subuid echo dockremap:$(cat /etc/passwd|grep dockremap|cut -d: -f4):65536 >> /etc/subgid
Etapa 7: agora, verifique a instalação do Docker
Use o comando abaixo para verificar as informações da versão instalada do Docker.
docker info
Etapa 8 Extrair imagem Docker no Alpine
Para saber se tudo está funcionando bem, vamos exibir uma imagem de Olá Mundo
docker pull hello-world
Para executar a imagem:
docker run -t hello-world
Adicional: Erros que encontramos durante a configuração
1: resposta de erro do daemon https //registry-1.docker.io/v2/ time out
Recebemos o erro acima porque no resolv.conf do Alpine os nameservers não foram configurados adequadamente, por isso o editamos:
vi /etc/resolv.conf
E adicionou os seguintes servidores de nomes:
nameserver 8.8.8.8 nameserver 8.8.4.4
2.Após instalar o Alpine, a rede ficou inacessível, por isso editamos:
vi /etc/network/interfaces
E acrescentou o seguinte:
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp
Dessa forma, podemos usar este Alpine Linux para Docker leve executando máquinas virtuais em contêineres.












