Introdução
Neste laboratório, você aprenderá como gerenciar o estado de contêineres Docker, com foco específico em pausá-los e despausá-los. Você começará criando e executando um contêiner simples.
Após a criação, você praticará a pausa do contêiner em execução e verificará seu estado pausado. Finalmente, você aprenderá como despausar o contêiner e confirmar que ele retomou a execução. Essa experiência prática fornecerá uma compreensão prática do uso do comando docker container unpause.
Criar e executar um contêiner
Nesta etapa, você aprenderá como criar e executar um contêiner Docker. Um contêiner é uma unidade padrão de software que empacota o código e todas as suas dependências para que o aplicativo seja executado de forma rápida e confiável de um ambiente de computação para outro.
Primeiro, vamos baixar uma imagem simples do Docker Hub. Usaremos a imagem hello-world, que é uma imagem muito pequena usada para testar instalações do Docker.
docker pull hello-world
Você deve ver uma saída indicando que a imagem está sendo baixada e extraída.
Using default tag: latest
latest: Pulling from library/hello-world
...
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest
Agora que temos a imagem, podemos executar um contêiner com base nela. Quando você executa um contêiner a partir da imagem hello-world, o Docker simplesmente imprimirá uma mensagem em seu terminal e, em seguida, sairá.
docker run hello-world
Você deve ver uma saída semelhante a esta, que confirma que sua instalação do Docker está funcionando corretamente:
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(If you already had the image locally, skipped the pull step.)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Este comando criou e executou um contêiner a partir da imagem hello-world. Como a tarefa do contêiner era apenas imprimir uma mensagem e sair, ele não está mais em execução.
Pausar o contêiner em execução
Na etapa anterior, executamos um contêiner simples que saiu imediatamente. Para demonstrar a pausa e a despausa, precisamos de um contêiner que permaneça em execução. Usaremos um contêiner ubuntu simples e o manteremos em execução em segundo plano.
Primeiro, vamos baixar a imagem ubuntu.
docker pull ubuntu
Você deve ver uma saída indicando que a imagem está sendo baixada e extraída.
Using default tag: latest
latest: Pulling from library/ubuntu
...
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest
Agora, vamos executar um contêiner ubuntu no modo detached (-d) para que ele seja executado em segundo plano. Também daremos a ele um nome (my-ubuntu) para facilitar a referência. Usaremos o comando tail -f /dev/null para manter o contêiner em execução indefinidamente.
docker run -d --name my-ubuntu ubuntu tail -f /dev/null
Este comando exibirá o ID do contêiner.
<container_id>
Você pode verificar se o contêiner está em execução usando o comando docker ps.
docker ps
Você deve ver uma saída semelhante a esta, mostrando seu contêiner my-ubuntu com um status de Up.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "tail -f /dev/null" X seconds ago Up X seconds my-ubuntu
Agora que temos um contêiner em execução, podemos pausá-lo usando o comando docker pause seguido pelo nome ou ID do contêiner.
docker pause my-ubuntu
Se o comando for bem-sucedido, não haverá saída. O contêiner agora está pausado.
Verificar se o contêiner está pausado
Na etapa anterior, pausamos o contêiner my-ubuntu. Agora, vamos verificar se o contêiner está realmente em um estado pausado.
Podemos usar o comando docker ps novamente para verificar o status dos contêineres em execução.
docker ps
Este comando mostrará apenas os contêineres atualmente em execução. Como pausamos o contêiner my-ubuntu, ele não deve aparecer na saída de docker ps.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Para ver todos os contêineres, incluindo aqueles que foram parados, saíram ou pausados, podemos usar a flag -a com docker ps.
docker ps -a
Agora você deve ver o contêiner my-ubuntu listado, e seu status deve indicar que ele está pausado. Procure a palavra Paused na coluna STATUS.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "tail -f /dev/null" X minutes ago Up X minutes (Paused) my-ubuntu
O status (Paused) confirma que o contêiner não está em execução ativa, mas ainda está na memória, pronto para ser despausado.
Retomar a execução do contêiner
Na etapa anterior, verificamos que o contêiner my-ubuntu estava pausado. Agora, vamos despausá-lo e retomar sua execução.
Para despausar um contêiner, usamos o comando docker unpause seguido pelo nome ou ID do contêiner.
docker unpause my-ubuntu
Se o comando for bem-sucedido, não haverá saída. O contêiner agora deve estar em execução novamente de onde foi pausado.
Verificar se o contêiner está executando novamente
Na etapa anterior, despausamos o contêiner my-ubuntu. Agora, vamos verificar se ele está ativamente em execução novamente.
Podemos usar o comando docker ps para listar os contêineres atualmente em execução.
docker ps
Desta vez, o contêiner my-ubuntu deve aparecer na saída, e seu status deve ser Up.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "tail -f /dev/null" X minutes ago Up X seconds my-ubuntu
O status Up indica que o contêiner está em execução e seus processos estão ativos.
Para confirmar ainda mais, também podemos usar docker ps -a e verificar o status. Ele deve mostrar Up sem o indicador (Paused).
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "tail -f /dev/null" X minutes ago Up X seconds my-ubuntu
Isso confirma que o contêiner foi retomado com sucesso de seu estado pausado.
Finalmente, vamos limpar o contêiner que criamos. Precisamos pará-lo primeiro e, em seguida, removê-lo.
docker stop my-ubuntu
Este comando irá parar o contêiner. Você deve ver o nome ou ID do contêiner impresso.
my-ubuntu
Agora, remova o contêiner usando o comando docker rm.
docker rm my-ubuntu
Este comando irá remover o contêiner. Você deve ver o nome ou ID do contêiner impresso.
my-ubuntu
Resumo
Neste laboratório, você aprendeu como criar e executar um contêiner Docker, puxando a imagem hello-world e executando-a. Isso demonstrou o processo básico de obtenção de uma imagem e lançamento de um contêiner a partir dela. Em seguida, você aprendeu como pausar um contêiner em execução, suspendendo efetivamente seus processos, e verificar seu estado pausado. Finalmente, você praticou a despausar o contêiner para retomar sua execução e confirmou que ele estava em execução novamente.



