Voltar ao blog

Como Instalar e Configurar o Docker Compose no Ubuntu 20.04

Como Instalar e Configurar o Docker Compose no Ubuntu 20.04

Introdução

Conteinerização ganhou muito fôlego no espaço de tecnologia de software nos últimos anos. Isso pode ser atribuído ao Docker que é uma plataforma de contêineres que simplifica o gerenciamento de processos dentro de contêineres.

Os contêineres são ambientes padronizados leves, virtualizados, portáteis e definidos por software que permitem que o software seja executado de forma isolada de outros softwares em execução na máquina host física. Esse recurso de portabilidade permite que os desenvolvedores modularizem suas aplicações em serviços isolados. Além disso, eles podem ser servidos de forma independente, dando margem para escalabilidade.

Embora dividir uma aplicação em múltiplos serviços seja definitivamente ótimo, isso traz a sobrecarga de gerenciar vários contêineres. Você precisa garantir que eles se comuniquem, iniciem e sejam desligados ao mesmo tempo. Graças a uma ferramenta chamada Docker Compose, isso se torna uma tarefa fácil. O Docker Compose permite que os desenvolvedores executem aplicações Docker multi-contêiner usando regras definidas em um YAML arquivo. O arquivo YAML contém definições para os serviços da aplicação e como eles podem compartilhar volumes de dados e redes. Depois de definir os serviços, você pode iniciar todos eles com um único comando. Neste tutorial, mostraremos como instalar, configurar e começar a usar o Docker Compose no Ubuntu 20.04.

Pré-requisitos

Passo 1: Instalando o Docker Compose

Estaremos baixando a versão estável mais recente do Docker Compose de seu repositório oficial do GitHub. Você pode descobrir a versão mais recente na página de lançamentos, no momento da redação deste tutorial, la versão mais recente é 1.28.5.

Primeiro, faça login no seu servidor Ubuntu com o usuário sudo não-root e insira o seguinte comando. Ele baixa a versão mais recente (1.28.5) e salva o executável no diretório /usr/local/bin/docker-compose. Isso o torna acessível globalmente como docker-compose:

Depois de baixado, insira o seguinte comando para definir as permissões apropriadas para que o comando docker-compose seja executável:

Agora, verifique se a instalação foi bem-sucedida e se o comando pode ser invocado executando o seguinte comando:

Você deve obter uma saída como esta:

docker compose version

Isso confirma que o Docker Compose foi instalado com sucesso no seu sistema.

Passo 2: Criando o arquivo docker-compose.yml

Para ajudá-lo a entender como trabalhar com docker-compose.yml, configuraremos um ambiente de servidor web usando a imagem oficial do imagem do Nginx do Docker Hub. Uma vez implantado, devemos ser capazes de servir uma página HTML básica a partir do contêiner.

Criaremos nosso diretório de trabalho na pasta home, de onde trabalharemos. Insira o seguinte comando para criar o diretório:

Em seguida, entre no diretório:

Uma vez dentro do diretório, crie uma pasta de aplicação que será a raiz do documento para o ambiente Nginx. Podemos chamar essa pasta de app:

  • Criando uma página HTML

Vamos usar o editor de texto nano para criar o arquivo index.html dentro da pasta app:

Em seguida, adicione o seguinte código HTML ao arquivo:

Para salvar o arquivo, pressione CTRL +O, ENTER. Em seguida, feche com CTRL +X. Depois, criaremos o arquivo docker-compose.yml dentro da raiz do nosso projeto.

  • Hospedando a página HTML usando o docker-compose

Em seguida, insira o seguinte comando para abrir o arquivo com o nano editor:

Depois disso, adicione o seguinte trecho de código dentro do arquivo:

O docker-compose.yml o arquivo começa com o número da versão que diz ao Docker Compose qual versão de configuração estamos usando. Siga este link para saber mais sobre versionamento do Docker Compose.

Depois do número da versão, temos o bloco de serviços que contém os serviços que compõem o ambiente. Neste tutorial, especificamos apenas um único serviço chamado webserver. O webserver serviço usará a imagem nginx:alpine. Também definimos o redirecionamento de portas 8000:80. O que isso significa é que todas as requisições da porta 8000 na máquina hospedeira serão redirecionadas para o contêiner do webserver na porta 80, onde o Nginx está sendo executado.

A diretiva volumes permite que você crie um volume compartilhado entre a máquina hospedeira e o contêiner que podemos usar para persistir dados. Em nosso yml trecho de código, compartilhamos a pasta local app com o contêiner. Dentro do contêiner, ela será colocada no local /usr/share/nginx/html. Portanto, ela está sobrescrevendo a raiz de documentos padrão do Nginx. Você pode salvar e fechar o arquivo agora.

Até este ponto, você criou sua página web HTML de exemplo e o arquivo docker-compose.yml com instruções para construir um ambiente de servidor web em contêiner. Vamos ver como podemos iniciar essa configuração na próxima etapa.

Passo 3: Executando o Comando Docker Compose

Nesta etapa, executaremos o comando para iniciar nosso ambiente em contêiner. Abaixo está o comando único que inicializará o processo de download das imagens Docker, criará um contêiner para o serviço webserver e iniciará o ambiente em contêiner em segundo plano:

O Docker foi projetado para ser rápido e eficiente, portanto, quando você executa o comando acima, ele primeiro verifica seu sistema local em busca da imagem definida. Se ela estiver ausente, ele a obterá do repositório Docker Hub. Ele deve mostrar uma saída semelhante a esta:

 compose up

Quando o comando terminar de ser executado, ele iniciará o ambiente do contêiner em segundo plano. Você pode verificar se ele está em execução usando o comando:

Você deve obter uma saída semelhante:

 compose ps

Se você navegar para o endereço IP ou nome de domínio do seu servidor e adicionar a porta 8000, ou seja, server_domain_or_IP:8000 você deverá conseguir ver a página HTML de exemplo que criamos:

docker compose webpage

Se você se lembra, configuramos um volume compartilhado entre o contêiner e o sistema hospedeiro. Isso mantém os arquivos no contêiner sincronizados com os arquivos no sistema hospedeiro. Portanto, se você fizer uma alteração no arquivo index.html, ele sincroniza com o contêiner automaticamente e é refletido quando você recarrega a página no navegador. Você pode tentar com o editor nano. Vamos aprender mais alguns comandos na próxima etapa.

Passo 4: Comandos Adicionais do Docker Compose para Gerenciar Ambientes de Contêiner

Agora que você implantou com sucesso uma página web usando o único comando docker-compose-up, vejamos alguns comandos adicionais que podem ser úteis no gerenciamento de ambientes em contêiner.

Começaremos com o comando logs. Os logs podem ser cruciais quando você está solucionando falhas em sua aplicação. Primeiro, execute o seguinte comando para visualizar os logs produzidos pelo contêiner Nginx:

Aqui está uma saída de exemplo dos logs:

 logs

Você pode pausar a execução do ambiente sem alterar o estado dos contêineres usando o comando:

 compose pause

Em seguida, para despausar ou retomar as execuções, use o comando:

docker compose unpause

Você pode querer parar os contêineres sem destruir seus dados. Para fazer isso, use o seguinte comando:

stop

Para destruir os contêineres, redes e volumes associados ao ambiente em contêiner, use o comando:

docker compose down

Tenha em mente que o comando acima não remove as imagens base usadas pelo Docker Compose para iniciar o ambiente. Isso garante compilações mais rápidas quando você inicia seu ambiente, pois ele verifica a máquina local em busca de imagens correspondentes. Se você deseja remover completamente a imagem base, deve especificá-la no comando. Para o nosso exemplo, podemos remover a nginx:alpine imagem usando o comando:

 image remove

Finalmente, você pode encontrar mais comandos na documentação oficial da Referência de Linha de Comando do Docker Compose.

Conclusão

Neste tutorial, você instalou o Docker Compose no Ubuntu 20.04, criou um ambiente em contêiner baseado em uma imagem de servidor web Nginx e aprendeu a gerenciar os vários serviços usando comandos do Docker Compose.

Se você deseja aprender como implantar uma aplicação dinâmica do mundo real que depende de vários contêineres, leia nosso tutorial sobre Implantando Laravel, Nginx e MySQL com Docker Compose. Você também pode encontrar uma lista completa de comandos do docker-compose na Documentação oficial do Docker Compose.

Feliz computação!

author

Pranay Kapgate

Autor · CloudSigma

Preslav Dobrev é um designer criativo na CloudSigma, focado na construção de uma identidade empresarial consistente por meio de canais de marketing tradicionais e inovadores. Ele é hábil em combinar a visão artística com o marketing estratégico para criar narrativas de marca impactantes.

Comentários

Nenhum comentário ainda. Seja o primeiro.