Voltar ao blog

Instalando o Docker Compose no CentOS 7

Instalando o Docker Compose no CentOS 7

A dockerização redefiniu o processo de implantação e automação na indústria de software. Desde a sua criação, a Docker equipe tem se esforçado continuamente para tornar a implantação automatizada perfeita. A tecnologia de conteinerização não apenas permite o desenvolvimento rápido de aplicações e eficiência, mas também economiza tempo e esforços árduos. Funcionalidades imbatíveis, como orquestrar, definir e executar aplicações multi-container juntas, tornam o Docker uma escolha favorita para desenvolvedores.

Containers e Imagens Docker

Ao mergulhar para entender melhor o Docker, é essencial revisar o básico. Entender como o Docker funciona pode ser complicado se você não tiver experiência de trabalho com ele. Nesta seção, vamos definir alguns conceitos que são essenciais para iniciantes. Se você acha que está familiarizado com esses conceitos, sinta-se à vontade para pular e seguir para a próxima seção. Você também pode dar uma olhada no nosso guia abrangente que explica os conceitos fundamentais do Docker.

  • Imagens Docker

As imagens Docker são uma coleção de arquivos somente leitura. Depois de criar imagens Docker, você não pode modificá-las, embora seja permitida a exclusão. Usamos uma imagem Docker para criar um ou mais containers Docker de acordo com as nossas necessidades. Para verificar o número de imagens em execução no seu sistema, use o comando:

Quando você faz o pull de imagens de um registro remoto como o Docker Hub, você está baixando arquivos e pastas. Para fazer o pull de uma imagem, use o comando:

  • Containers Docker

As imagens Docker são o modelo dos containers Docker. Tecnicamente, um container Docker é uma instância de uma imagem Docker. Imagine que, se uma imagem Docker é como um pai, então um container Docker é o filho. Ao contrário das imagens Docker, que você pode criar uma vez, você pode criar múltiplos containers usando uma única imagem. Para verificar a lista de imagens em execução no seu sistema, use o comando:

Para fazer o pull de um container, use o seguinte comando:

  • Como Funcionam as Imagens e Containers Docker

As imagens e containers Docker trabalham lado a lado para liberar o potencial do Docker. Um único container é construído usando a imagem Docker através do comando run. Quando você cria um container Docker, uma nova camada conhecida como Camada do Container (Container Layer) é criada. A camada recém-criada contém a aplicação e suas dependências. Cada container que você cria tem uma Camada do Container de leitura/gravação diferente, e quaisquer alterações feitas no container Docker são refletidas automaticamente na Camada do Container. Lembre-se de que, se você optar por excluir um container, também perderá a Camada do Container.

Diga Olá ao Docker Compose

Docker Compose é uma ferramenta de gerenciamento de containers que permite configurar e orquestrar todos os seus containers Docker em um único arquivo YAML. Iniciar, parar e criar vínculos e volumes intra-container são tarefas facilitadas com esta ferramenta.

  • O que o Docker Compose Faz?

Simplificando, o Docker Compose facilita tarefas complicadas ao eliminar conflitos e problemas organizacionais. Ele permite que os usuários gerenciem diferentes containers Docker de forma centralizada. Em outras palavras, em vez de ter todos os serviços em um único container grande, o Docker Compose divide um serviço em múltiplos serviços para que os usuários possam acessá-los e gerenciá-los sem esforço.

In Visão geral, vamos orientá-lo pelas etapas de instalação da versão atual do Docker Compose para gerenciar aplicações multi-container no CentOS 7. Também passaremos por alguns comandos básicos que você precisa para usar o software com sucesso.

  • Como Usar o Docker Compose

Usar o Docker Compose é extremamente fácil, mesmo para iniciantes. Vamos ver o processo de três etapas envolvido no Docker Compose:

1. Build: Primeiro, construa as imagens no Dockerfile de acordo com as necessidades do seu projeto, ou talvez faça o pull do registro.

2. Definir: Em seguida, você precisa definir todos os serviços componentes no arquivo compose.yml.

3. Executar: Depois de definir os componentes, é hora de executar usando o comando docker-compose.

Pré-requisitos

Antes de prosseguirmos com a instalação do Docker Compose no seu servidor CentOS, certifique-se de ter:

Você está pronto agora. Em seguida, acompanhe as etapas abaixo para instalar o Docker Compose no CentOS 7.

Passo 1: Instalando o Docker Compose

Para obter a versão mais recente do Docker Compose, siga as instruções na documentação do Docker e baixe os binários do repositório GitHub do Docker. Verifique se você possui a versão mais recente do software executando o comando abaixo:

Para tornar o binário executável, defina as permissões abaixo:

Em seguida, verifique sua versão para checar se a instalação foi bem-sucedida:

O código abaixo imprimirá a versão instalada:

docker-compose --version

Você poderá então executar um exemplo “Hello World” usando o Docker Compose que instalou.

Passo 2: Usando o Docker Compose para Executar um Container

Existe uma imagem “Hello World” no Docker Hub, o registro público do Docker, que pode ser usada para demonstração e testes. Ela mostra como executar um container usando o Docker Compose com a configuração mínima. Primeiro, você precisa criar um diretório para o nosso arquivo YAML:

Em seguida, mude para este diretório:

Em seguida, usando seu editor de texto preferido, gere o arquivo YAML. Neste tutorial, usaremos o Vi:

Pressione i para entrar no modo de inserção e digite isto no arquivo:

No nome do container, a primeira linha será incorporada. A segunda linha instrui o programa sobre qual imagem ele deve usar para criar o container. docker-composeup procurará por uma imagem local com o nome hello-world para verificar se ela está disponível quando você digita o comando. Para sair do modo de inserção, pressione ESC. Em seguida, digite :x e pressione ENTER para salvar e fechar o arquivo. O comando docker images pode ser usado para verificar manualmente as imagens em sua máquina:

Apenas os cabeçalhos das colunas aparecem quando não há nenhuma imagem local:

Docker Compose on CentOS 6

Para criar o container, execute este comando ainda no diretório /hello-world:

Quando você executa o comando pela primeira vez e não há uma imagem local chamada hello-world, ela será baixada do repositório do Docker Hub:

sudo docker-compose up

Para garantir que a instalação funcione, o Docker Compose baixa a imagem, cria um container, o anexa e executa o programa hello program:

hello program

Depois disso, uma descrição do que foi feito é exibida:

Docker Compose on CentOS 3

Quando o hello concluir sua tarefa, o container será desligado e o comando não estará mais em execução no container. Os cabeçalhos das colunas serão exibidos ao visualizar os processos ativos. No entanto, o container hello-world não será listado porque não está em operação no momento:

sudo docker ps

Para ver todos os containers, não apenas os atuais, use a flag -a :

Docker Compose 2

Agora que você experimentou executar um container, pode prosseguir para aprender alguns dos comandos fundamentais do Docker Compose.

Step 3: Comandos do Docker Compose

Para começar a usar o Docker Compose, esta seção abordará os comandos básicos fornecidos pela ferramenta docker-compose. docker-compose é um comando que funciona diretório por diretório. Ao gerar um diretório para cada container e um arquivo docker-compose.yml por diretório, você pode executar vários grupos de containers Docker no mesmo computador.

Até agora, você estava executando o Docker Compose por conta própria. Você pode desligá-lo pressionando Ctrl-C. Isso permite que a janela do terminal exiba mensagens de depuração. No entanto, é recomendável executar o docker-compose como um serviço ao operar em produção. A -d opção pode ser usada como uma maneira simples de fazer isso:

Agora, docker-compose vai para o segundo plano. Seu grupo de containers Docker (parados ou em execução) pode ser gerenciado com o seguinte comando:

O Estado de um container será relatado como Exited se ele estiver parado, como visto no exemplo abaixo:

Docker Compose on CentOS 5

Um container que está em execução no momento exibirá:

Você pode encerrar todos os containers Docker em execução no mesmo diretório que o arquivo docker-compose.yml que você usou para iniciar o grupo Docker:

Nota: Se você precisar desligar as coisas de forma mais forçada, o docker-compose kill também está disponível.

Em alguns casos, os containers Docker podem salvar seus dados antigos internamente. Use o comando rm para remover todos os containers do seu grupo de containers se quiser começar do zero:

Executar qualquer um desses comandos de outro diretório que não seja aquele onde o container Docker e o arquivo .yml estão localizados resultará em uma mensagem de erro:

Nesta seção, cobrimos o básico sobre a manipulação de containers com o Docker Compose. Como discutido, na seção seguinte você poderá acessar o sistema de arquivos do Docker e executar comandos a partir de um prompt de comando dentro do container, caso precise de controle adicional sobre seus containers.

Passo 4: Acessar o Sistema de Arquivos do Container Docker

É possível executar um prompt de comando em um container e acessar o sistema de arquivos do container usando o docker exec, que é uma ferramenta de linha de comando. Como exemplo, execute “Hello World” e veja quanto tempo leva para o comando docker exec ser concluído. Para fins deste tutorial, a imagem do Nginx no Docker Hub pode ser utilizada. Crie um novo diretório chamado nginx e entre nele:

Agora você deve ter um arquivo docker-compose.yml, que pode abrir em um editor de texto:

Em seguida, no arquivo, adicione o seguinte:

É hora de fechar a aplicação. Para iniciar o container Nginx em segundo plano, use o seguinte comando:

Docker Compose on CentOS 1

O Docker Compose fará o download da imagem do Nginx e executará o container em segundo plano. Para continuar, você precisará inserir o CONTAINER ID.  Você pode visualizar todos os containers em execução no momento com o seguinte comando:

Você verá o seguinte:

 Docker Compose on CentOS 4

Se você quisesse alterar o sistema de arquivos dentro deste container, usando o docker exec, você usaria o ID exclusivo do container (neste caso, f139d0d78ca7) para criar um shell dentro do container:

sudo docker exec -it

Um terminal interativo pode ser aberto usando a opção -t, enquanto /bin/bash fornece ao container um shell bash. Este é o prompt do bash que você verá para o container depois disso:

Dentro do seu container, você encontrará um prompt de comando. Reiniciar o container substituirá quaisquer alterações que você tenha feito, a menos que esteja trabalhando em um diretório que tenha sido salvo como parte de um volume de dados. Se você está acostumado a trabalhar com recursos de linha de comando do Linux, deve saber que a maioria das imagens Docker é produzida usando as instalações mais básicas do Linux.

Conclusão

Nós o guiamos pelas etapas de instalação da versão atual do Docker Compose para gerenciar aplicativos multi-container no CentOS 7. A capacidade do Docker Compose de iniciar e encerrar simultaneamente um grande número de containers é impressionante. Ir de templates para aplicações leva minutos. Portanto, se o seu trabalho envolve a execução de vários containers ao mesmo tempo, continuar com o Docker Compose é uma ótima opção. No entanto, não é uma solução única para todos os casos. Você também pode encontrar algumas opções melhores, dependendo de suas necessidades específicas, por exemplo, Kubernetes.

Para explorar ainda mais o poder do Docker Compose, você pode consultar estes tutoriais do nosso blog:

Feliz computação!

author

Hark Labs

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.