Docker CE no Alma Linux 9: um guia de instalação rápido e fácil
Docker é um software OpenSource que fornece virtualização em nível de sistema operacional para desenvolvimento, envio e execução de aplicativos. No Docker, os aplicativos são entregues como pacotes, unidades padronizadas chamadas contêineres. Cada contêiner é isolado um do outro, incluindo bibliotecas e arquivos de configuração, mas cada um deles pode se comunicar por meio de canais de rede bem definidos.
Por enquanto, o Docker se tornou um padrão para desenvolvimento de software e DevOps. Ele é usado por milhões de desenvolvedores para criar, compartilhar e executar qualquer aplicativo todos os dias no trabalho. É usado no ciclo de vida do desenvolvimento de aplicativos, desde o desenvolvimento em si, teste e produção. Com o Docker, o aplicativo se torna mais flexível e portátil. Os aplicativos podem ser executados em qualquer lugar em diferentes sistemas operacionais de maneira fácil, mas o aplicativo em si permanece o mesmo, desde bibliotecas até arquivos de configuração.
Neste guia, você aprenderá como instalar o Docker CE (Community Edition) no Alma Linux 9. Este guia também cobre o uso básico do Docker para gerenciar imagens, contêineres e volumes, trabalhar com logs de contêineres e acessar contêineres via Docker Host .
Pré-requisitos
Este guia exigia o seguinte:
- Um servidor Linux executando Alma Linux 9 - Este exemplo usa um servidor Alma Linux com nome de host 'alma-linux' e endereço IP '192.168.5.'
- Um usuário não root com privilégios de administrador sudo/root.
Adicionando repositório Docker CE
Docker é uma ferramenta de orquestração para desenvolver, enviar e executar aplicativos via contêiner. Isso torna o processo de desenvolvimento mais rápido porque o Docker permite criar imagens de aplicativos sem depender da máquina host. Isso torna a distribuição de aplicativos aos desenvolvedores mais rápida e fácil.
Docker é uma orquestração de contêineres multiplataforma, pode ser instalado em Desktop e Servidor. Se estiver usando um Desktop, você pode instalar o Docker Desktop, mas se estiver usando um servidor, você pode instalar o Docker Engine por meio do repositório oficial do Docker.
Na primeira seção, você configurará o repositório Docker CE em seu servidor Alma Linux.
Execute o seguinte comando para instalar o pacote 'dnf-utils'.
sudo dnf install dnf-utils
Insira y quando solicitado e pressione ENTER para continuar.
Agora, adicione o repositório Docker CE usando o seguinte comando dnf.
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Depois que o repositório Docker CE for adicionado, verifique usando o comando abaixo. Isso mostrará a lista de repositórios disponíveis em seu Alma Linux.
sudo dnf repolist
Quando tiver sucesso, você deverá receber uma saída como esta:
Vá para a próxima seção para instalar o Docker CE.
Instalando o Docker CE
Nesta seção, você instalará o Docker CE no servidor Alma Linux. Ao final desta seção, você terá o Docker instalado e funcionando em seu sistema.
Instale o Docker CE usando o seguinte comando dnf. Com isso, você instalará o Docker com o pacote adicional 'docker-buildx-plugin' é o plugin Docker Build que agiliza a construção de imagens, e o 'docker-compose-plugin<' é o plugin Docker Compose para facilitar o desenvolvimento de aplicativos.
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Quando solicitado, insira y para confirmar e pressione ENTER para continuar.
Além disso, você será solicitado a confirmar a chave GPG para o repositório Docker. Insira para confirmar e pressione ENTER.
Depois que o Docker estiver instalado, execute o seguinte comando systemctl para iniciar e ativar o serviço ‘docker’.
sudo systemctl start docker
sudo systemctl enable docker
Após a execução do comando, o Docker estará em execução e também estará habilitado, o que significa que o Docker será iniciado automaticamente na inicialização do sistema.
Execute o comando abaixo para verificar o status do serviço Docker e garantir que o Docker esteja em execução.
sudo systemctl status docker
Quando o Docker estiver em execução, você deve esperar uma saída como esta:
Permitindo que usuário não root execute o contêiner Docker
Por padrão, apenas o usuário root tem permissão para executar o contêiner via Docker. Esta seção mostrará como permitir que usuários não root executem contêineres Docker adicionando o usuário ao grupo existente chamado 'docker'.
Execute o seguinte comando para adicionar seu usuário ao grupo 'docker'. Este exemplo usa um usuário chamado 'testuser'.
sudo usermod -aG docker testuser
Agora, faça login como seu usuário usando o seguinte comando. Em seguida, execute o comando 'docker run' abaixo para executar o contêiner 'hello-world'.
su - testuser
docker run hello-world
Quando for bem-sucedido, você deverá receber uma saída como a seguinte:
Em seguida, execute o seguinte comando docker para verificar o contêiner em execução em seu sistema.
docker ps
docker ps -a
O primeiro comando 'docker ps' não terá saída porque mostrará apenas um contêiner em execução, e o contêiner 'hello-world' será encerrado/parado após o " A mensagem Hello from Docker" é impressa. Mas para o segundo comando com 'docker ps -a', ele fornecerá saída para execução e saída de contêineres.
Uso básico do Docker
Agora você atingiu com sucesso o estágio em que o Docker está instalado e funcionando e também permitiu que seu usuário não root executasse o contêiner do Docker. Não, passe para o uso básico do Docker.
As etapas a seguir mostrarão alguns cenários para usar o Docker. Você aprenderá como gerenciar imagens Docker, trabalhando com o contêiner e o volume, e também como acessar o contêiner a partir da máquina host.
Com tudo no lugar, vamos começar.
Trabalhando com imagens
Na primeira etapa, você trabalhará com a imagem Docker. Você fará download da imagem e verificará a lista de imagens disponíveis em sua máquina local.
Para fazer download de uma imagem, visite o DockerHub e insira o nome da imagem do Docker que você deseja baixar. Neste exemplo, você fará download da imagem 'nginx' com tags 'alpine'. Se clicar na aba TAGS, você deverá ver a lista de versões disponíveis da imagem Nginx.
Agora execute o comando 'docker pull' abaixo para baixar as imagens do Docker. Neste exemplo, você fará o download da imagem 'nginx:alpine', que se refere à versão mais recente da imagem Nginx Alpine.
docker pull nginx:alpine
Depois de baixado, execute o seguinte comando para listar as imagens disponíveis em seu host. Se você seguir essas etapas desde o início, deverá ver duas imagens do Docker, 'hello-world' com a tag 'latest' e 'nginx' com a tag 'alpino'.
docker images
Trabalhando com contêiner
Com a imagem do Docker baixada, agora você pode executar o contêiner. Esta seção mostrará como criar e executar um contêiner via Docker.
Para executar um contêiner, execute o seguinte comando 'docker run' abaixo.
docker run -it -d -p 8080:80 --name web nginx:alpine
Este comando criará um novo contêiner chamado 'web', que é baseado na imagem Docker 'nginx:alpine'. O novo contêiner 'web' exporá a porta '8080' no host Docker, que é igual à porta 80 no contêiner. O parâmetro adicional '-it' é usado para executar o contêiner no modo interativo, e o parâmetro '-d' executará o contêiner em segundo plano.
Depois que o comando for executado, você deverá ver o número aleatório e a string, que é o 'CONTAINER ID'.
Agora, execute o comando abaixo para verificar a lista de contêineres em execução.
docker ps
Você deve esperar uma saída como esta - O contêiner 'web' com o status 'Up' e expôs a porta 8080 no host Docker.
Em seguida, execute o comando curl abaixo para acessar o contêiner 'web' que está exposto na porta 8080. Quando for bem-sucedido, você deverá ver o código-fonte HTML do índice padrão do contêiner 'web'.
curl http://192.168.5.43:8080/
Por último, se quiser acessar seu contêiner de uma rede externa, você deve abrir a porta 8080 em seu servidor Alma Linux através do comando 'firewall-cmd' abaixo.
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
Agora abra o navegador da web e sua máquina local e visite o endereço IP do servidor seguido pela porta 8080 (ou seja: http://192.168.5.43:8080/). Você deve esperar uma saída da página index.html para o contêiner 'web'.
Registro de contêiner
O log é importante no Docker, especialmente se você estiver desenvolvendo imagens para seus aplicativos. O log ajuda a depurar o desenvolvimento do seu aplicativo.
Execute o seguinte comando para obter logs completos do contêiner 'web'.
docker logs web
Abaixo está a saída semelhante que você obterá do contêiner 'web'.
Você também pode limitar a saída dos logs por meio do parâmetro 'tail' conforme abaixo. Este comando mostrará as últimas 5 linhas dos logs do contêiner 'web'.
docker logs --tail 5 web
Gerenciando contêiner
Nesta seção, você aprenderá como gerenciar um contêiner. Você aprenderá como iniciar, parar e remover o contêiner.
Para parar um contêiner 'web', execute o comando 'docker stop' abaixo.
docker stop web
Agora, verifique o contêiner usando o seguinte comando. Você deve obter uma saída do contêiner 'web' com o status 'Exited'.
docker ps
docker ps -a
Para iniciar novamente o contêiner 'web', execute o comando 'docker start' abaixo. Em seguida, verifique a lista de contêineres em execução usando o comando 'docker ps'.
docker start web
docker ps
Você deverá obter uma saída informando que o contêiner 'web' está sendo executado com o status 'Up'.
Por último, execute o seguinte comando para remover o contêiner 'web'. Antes de excluir o contêiner, você deve interrompê-lo primeiro.
docker stop web
docker rm web
Se você verificar a lista de contêineres por meio do comando 'docker ps', deverá esperar uma saída informando que o contêiner 'web' foi excluído.
docker ps -a
Trabalhando com volume
Volume é onde você anexou seu volume/diretório local ao contêiner. Você pode assumir que o volume é como uma 'pasta compartilhada' na máquina virtual. Nesta seção, você criará um novo contêiner com um volume personalizado que permite anexar o diretório local ao contêiner.
Primeiro, crie um novo diretório de projeto '~/project/data' e mova seu diretório de trabalho para ele.
mkdir -p ~/project/data; cd ~/project
Agora, execute o seguinte comando para criar um novo arquivo 'data/index.html'. Este arquivo substituirá a página index.html padrão do novo contêiner 'web'.
cat > data/index.html << EOF
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Welcome to Docker Nginx</title>
</head>
<body>
<h2>Hello from Nginx container</h2>
</body>
</html>
EOF
Agora, execute o seguinte comando para criar e executar um novo contêiner 'web' com o volume personalizado por meio do parâmetro '-v'. Neste exemplo, você montará o diretório local '~/project/data' no contêiner 'web' com o diretório de destino '/usr/share/nginx/html '. A opção adicional ':ro' tornará o diretório '/usr/share/nginx/html' no contêiner somente leitura, enquanto na máquina host, a leitura e a gravação ainda são permitidas.
docker run -it -d -p 8080:80 --name web -v ~/project/data:/usr/share/nginx/html:ro nginx:alpine
Em seguida, execute o seguinte comando para garantir que o novo contêiner 'web' esteja em execução.
docker ps
Quando bem-sucedido, você deve esperar uma saída como a seguinte: O contêiner 'web' está em execução e a porta 8080 exposta na máquina host.
Agora, execute o comando curl abaixo para acessar o contêiner 'web'. Quando tudo correr bem, você deverá ver o código-fonte da página index.html personalizada que você criou.
curl http://192.168.5.43:8080/
Abaixo está a página do index.html personalizado quando acessado a partir do navegador da web (ou seja: http://192.168.5.43:8080/).
Acessando o contêiner do host
Para acessar e fazer login no contêiner, você pode usar o comando ‘docker exec’, que permite executar o comando que está disponível no contêiner.
Execute o seguinte comando para fazer login no contêiner 'web'. Isto executará o comando '/bin/sh' no contêiner 'web' e o parâmetro '-it' o levará diretamente para o recipiente.
docker exec -it web /bin/sh
Uma vez logado no contêiner, execute o seguinte comando para verificar o nome do host detalhado do seu contêiner. O nome do host do contêiner deve ser igual ao 'CONTAINER ID'.
id
hostname
Em seguida, execute o seguinte comando para verificar o endereço IP e o gateway padrão do contêiner.
ip a
route -n
Você deve esperar uma saída como a seguinte:
Como o contêiner ‘web’ está executando o processo Nginx, você pode acessar seu contêiner por meio do endereço IP local por meio do comando curl abaixo. Neste exemplo, o endereço IP do contêiner é '172.17.0.2'. Você deve obter a mesma página index.html.
curl 172.17.0.2
Conclusão
Agora que concluiu este guia, você deve saber como instalar o Docker no Alma Linux 9. Você também concluiu o cenário de uso básico do Docker para gerenciar imagens e contêineres, registrar contêineres para fins de depuração, trabalhar com volume do docker e o uso básico de 'docker exec' para fazer login no contêiner.