Introdução
Neste laboratório, você aprenderá como usar o comando docker compose unpause para retomar serviços pausados. Começaremos criando um arquivo docker-compose.yml simples para definir um serviço web básico usando a imagem Nginx.
Após a configuração, você iniciará os serviços usando docker compose up, depois os pausará usando docker compose pause. Finalmente, você usará docker compose unpause para retomar os serviços e verificar se eles estão executando corretamente. Este exercício prático demonstrará a aplicação prática de pausar e despausar serviços do Docker Compose.
Criar um arquivo docker-compose.yml simples
Nesta etapa, criaremos um arquivo docker-compose.yml básico. Este arquivo é o núcleo do Docker Compose, definindo os serviços, redes e volumes para sua aplicação. Antes de começarmos, precisamos instalar o Docker Compose, pois ele não vem pré-instalado neste ambiente.
Primeiro, vamos instalar o Docker Compose. Faremos o download da versão estável mais recente e a tornaremos executável.
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Agora, vamos verificar a instalação checando a versão.
docker-compose --version
Você deve ver as informações da versão impressas no console, confirmando que o Docker Compose foi instalado corretamente.
Em seguida, navegue até o diretório ~/project, que é seu diretório de trabalho para este laboratório.
cd ~/project
Agora, criaremos um arquivo chamado docker-compose.yml neste diretório. Este arquivo definirá um serviço simples usando a imagem nginx. Usaremos o editor nano para criar e editar o arquivo.
nano docker-compose.yml
Dentro do editor nano, cole o seguinte conteúdo:
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
Vamos detalhar este arquivo docker-compose.yml:
version: '3.8'especifica a versão do formato do arquivo Docker Compose.services:define os diferentes serviços que compõem sua aplicação.web:é o nome do nosso serviço. Você pode nomear seus serviços como quiser.image: nginx:latestespecifica a imagem Docker a ser usada para este serviço. Neste caso, estamos usando a versão mais recente da imagem oficial do Nginx. Como esta imagem pode não estar presente localmente, o Docker Compose a puxará automaticamente do Docker Hub quando você iniciar o serviço.ports:mapeia as portas entre a máquina host e o container."80:80"mapeia a porta 80 no host para a porta 80 no container. Isso significa que você poderá acessar o servidor web Nginx em execução dentro do container visitandohttp://localhost(ou o endereço IP da VM) em sua máquina host.
Após colar o conteúdo, salve o arquivo pressionando Ctrl + O, depois pressione Enter para confirmar o nome do arquivo e, finalmente, pressione Ctrl + X para sair do editor nano.
Você criou com sucesso seu primeiro arquivo docker-compose.yml. Na próxima etapa, usaremos este arquivo para iniciar o serviço Nginx.
Iniciar serviços usando docker compose up
Nesta etapa, usaremos o comando docker-compose up para iniciar os serviços definidos em nosso arquivo docker-compose.yml. Este comando constrói, (re)cria, inicia e anexa aos containers para um serviço.
Certifique-se de estar no diretório ~/project onde você criou o arquivo docker-compose.yml na etapa anterior.
cd ~/project
Agora, execute o seguinte comando para iniciar o serviço Nginx:
docker-compose up -d
Vamos entender o comando:
docker-compose upinicia os serviços definidos no arquivodocker-compose.yml.-dexecuta os containers em modo detached (desanexado), o que significa que eles serão executados em segundo plano e não bloquearão seu terminal.
Quando você executa este comando pela primeira vez, o Docker Compose puxará a imagem nginx:latest do Docker Hub se ela ainda não estiver presente em seu sistema. Você verá a saída indicando que a imagem está sendo puxada e o container sendo criado e iniciado.
Para verificar se o container está em execução, você pode usar o comando docker ps.
docker ps
Você deve ver uma entrada para o serviço web (ou um nome semelhante com base no seu diretório e nome do serviço) com o status Up. Isso indica que o container Nginx está em execução.
Você também pode verificar se o servidor web Nginx está acessível usando curl para acessar a porta 80 exposta.
curl http://localhost:80
Você deve ver a saída HTML da página de boas-vindas padrão do Nginx em seu terminal. Isso confirma que o servidor Nginx está em execução dentro do container e é acessível a partir de sua máquina host através da porta mapeada.
Pausar serviços usando docker compose pause
Nesta etapa, aprenderemos como pausar os serviços em execução usando o comando docker-compose pause. Pausar um container suspende temporariamente todos os seus processos. Isso é diferente de parar um container, que encerra os processos.
Certifique-se de estar no diretório ~/project onde seu arquivo docker-compose.yml está localizado e seus serviços estão em execução.
cd ~/project
Agora, execute o seguinte comando para pausar o serviço web:
docker-compose pause web
Você deve ver a saída indicando que o serviço web está sendo pausado.
Para verificar se o container está pausado, você pode usar o comando docker ps.
docker ps
Observe a coluna STATUS para o container do serviço web. Ele agora deve mostrar um status como Up ... (Paused). Isso confirma que os processos do container estão suspensos.
Enquanto o container está pausado, o servidor web Nginx dentro dele não está processando ativamente as requisições. Se você tentar acessá-lo usando curl, a requisição provavelmente travará ou expirará porque o servidor não está respondendo.
curl http://localhost:80
Este comando não retornará imediatamente a página de boas-vindas do Nginx como fez quando o container estava em execução. Você pode precisar pressionar Ctrl + C para interromper o comando depois de um tempo.
Pausar é útil quando você precisa interromper temporariamente um serviço sem perder seu estado atual.
Retomar serviços usando docker compose unpause
Nesta etapa, retomaremos a execução do serviço pausado usando o comando docker-compose unpause. Este comando retoma containers que foram pausados.
Certifique-se de estar no diretório ~/project onde seu arquivo docker-compose.yml está localizado.
cd ~/project
Agora, execute o seguinte comando para retomar o serviço web:
docker-compose unpause web
Você deve ver a saída indicando que o serviço web está sendo retomado.
Para verificar se o container não está mais pausado e está em execução normalmente, você pode usar o comando docker ps novamente.
docker ps
Observe a coluna STATUS para o container do serviço web. Ele agora deve mostrar um status como Up ... sem o indicador (Paused). Isso significa que os processos do container foram retomados.
Após retomar, o servidor web Nginx dentro do container deve estar processando ativamente as requisições novamente. Você pode confirmar isso usando curl para acessar a porta 80 exposta.
curl http://localhost:80
Desta vez, você deve receber imediatamente a saída HTML da página de boas-vindas padrão do Nginx, assim como fez após iniciar o container inicialmente. Isso confirma que o serviço está totalmente operacional novamente.
Retomar é o oposto de pausar, permitindo que você retome rapidamente um serviço de seu estado suspenso.
Verificar se os serviços estão em execução após a retomada
Nesta etapa, realizaremos uma verificação final para garantir que o serviço Nginx esteja totalmente operacional após ser retomado. Embora tenhamos verificado o status do container na etapa anterior, é uma boa prática confirmar que a aplicação em execução dentro do container também está respondendo conforme o esperado.
Certifique-se de estar no diretório ~/project.
cd ~/project
Usaremos o comando curl novamente para acessar o servidor web Nginx em execução na porta 80.
curl http://localhost:80
Você deve ver o conteúdo HTML da página de boas-vindas padrão do Nginx impresso no seu terminal. Isso confirma que o processo Nginx dentro do container está em execução e servindo conteúdo.
Esta etapa reforça a compreensão de que retomar um container permite que a aplicação dentro dele retome suas operações normais.
Finalmente, para limpar o container em execução e a rede criada pelo Docker Compose, você pode usar o comando docker-compose down. Este comando para e remove containers, redes e volumes criados por up.
docker-compose down
Você verá a saída indicando que o serviço e a rede estão sendo parados e removidos.
Para confirmar que o container não está mais em execução, você pode usar docker ps.
docker ps
A saída não deve mostrar nenhum container em execução, indicando que o serviço Nginx foi parado e removido com sucesso.
Resumo
Neste laboratório, aprendemos como usar o Docker Compose para gerenciar o ciclo de vida dos serviços. Começamos instalando o Docker Compose e criando um arquivo docker-compose.yml para definir um serviço Nginx simples.
Em seguida, usamos docker compose up para iniciar o serviço definido, docker compose pause para suspender temporariamente os processos do serviço e, finalmente, docker compose unpause para retomar o serviço pausado. Verificamos o status do serviço após cada etapa, demonstrando a aplicação prática desses comandos do Docker Compose para controlar a execução do serviço.



