Introdução
Neste laboratório, você aprenderá como gerenciar checkpoints de contêineres Docker. Começaremos criando um contêiner Docker e, em seguida, criando um checkpoint de seu estado atual, o que permite salvar e restaurar o estado do contêiner.
Após a criação de um checkpoint, você aprenderá como listar os checkpoints existentes para verificar sua presença. Finalmente, você praticará a remoção de um checkpoint específico usando o comando docker checkpoint rm e verificará se ele foi removido com sucesso. Este laboratório oferece experiência prática com as operações fundamentais de checkpoints Docker.
Criar e fazer checkpoint de um contêiner
Nesta etapa, aprenderemos como criar um contêiner Docker e, em seguida, criar um checkpoint de seu estado atual. O checkpointing permite salvar o estado de um contêiner em execução e restaurá-lo posteriormente. Isso é útil para depuração, migração ou criação de snapshots de sua aplicação.
Primeiro, precisamos de uma imagem para executar um contêiner. Usaremos a imagem ubuntu. Como o ambiente da VM LabEx não possui todas as imagens pré-carregadas, faremos o pull da imagem ubuntu primeiro.
docker pull ubuntu
Você deve ver uma saída indicando que a imagem ubuntu está sendo baixada.
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 simples a partir da imagem ubuntu. Vamos executá-lo em modo detached (-d) e dar-lhe um nome (--name checkpoint-test). Também executaremos um comando que mantém o contêiner em execução, como sleep infinity.
docker run -d --name checkpoint-test ubuntu sleep infinity
Você deve ver uma longa sequência de caracteres, que é o ID do contêiner.
<container_id>
Para verificar se o contêiner está em execução, você pode usar o comando docker ps.
docker ps
Você deve ver o contêiner checkpoint-test listado com o status Up.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "sleep infinity" X seconds ago Up X seconds checkpoint-test
Agora que temos um contêiner em execução, podemos criar um checkpoint de seu estado. Usaremos o comando docker checkpoint create, seguido pelo nome do contêiner e o nome do checkpoint. Vamos nomear nosso checkpoint my-checkpoint.
docker checkpoint create checkpoint-test my-checkpoint
Se o comando for bem-sucedido, você não verá nenhuma saída. Isso significa que o checkpoint foi criado.
Listar checkpoints existentes
Na etapa anterior, criamos um checkpoint chamado my-checkpoint para o contêiner checkpoint-test. Nesta etapa, aprenderemos como listar os checkpoints existentes para um contêiner.
Para listar os checkpoints de um contêiner específico, usamos o comando docker checkpoint ls seguido pelo nome do contêiner.
docker checkpoint ls checkpoint-test
Você deve ver o nome do checkpoint que criamos na etapa anterior listado na saída.
CHECKPOINT ID
my-checkpoint
Este comando mostra todos os checkpoints que foram criados para o contêiner especificado. Se você tivesse criado vários checkpoints, todos eles seriam listados aqui.
Remover um checkpoint específico
Nas etapas anteriores, criamos um contêiner e um checkpoint para ele, e então listamos os checkpoints existentes. Nesta etapa, aprenderemos como remover um checkpoint específico.
Para remover um checkpoint, usamos o comando docker checkpoint rm, seguido pelo nome do contêiner e o nome do checkpoint que você deseja remover. Removeremos o checkpoint my-checkpoint do contêiner checkpoint-test.
docker checkpoint rm checkpoint-test my-checkpoint
Se o comando for bem-sucedido, você não verá nenhuma saída. Isso indica que o checkpoint foi removido.
A remoção de um checkpoint não afeta o contêiner em execução. O contêiner continuará a ser executado em seu estado atual.
Verificar se o checkpoint foi removido
Na etapa anterior, removemos o checkpoint my-checkpoint do contêiner checkpoint-test. Nesta etapa, verificaremos se o checkpoint foi removido com sucesso, listando os checkpoints novamente.
Para verificar se o checkpoint foi removido, usaremos o comando docker checkpoint ls para o contêiner checkpoint-test, assim como fizemos na Etapa 2.
docker checkpoint ls checkpoint-test
Desta vez, você não deve ver nenhuma saída, ou uma mensagem de erro indicando que não há checkpoints para este contêiner. Isso confirma que o checkpoint my-checkpoint foi removido.
Se você ainda vir my-checkpoint listado, volte para a etapa anterior e certifique-se de que executou corretamente o comando docker checkpoint rm.
Após verificar se o checkpoint foi removido, podemos limpar o contêiner que criamos. Vamos parar e, em seguida, remover o contêiner checkpoint-test.
Primeiro, pare o contêiner:
docker stop checkpoint-test
Você deve ver o nome do contêiner impresso como saída.
checkpoint-test
Em seguida, remova o contêiner:
docker rm checkpoint-test
Você deve ver o nome do contêiner impresso como saída novamente.
checkpoint-test
Agora, se você executar docker ps, não deverá ver o contêiner checkpoint-test listado.
docker ps
Este comando deve mostrar apenas os contêineres em execução. Se nenhum outro contêiner estiver em execução, a saída mostrará apenas a linha do cabeçalho.
Resumo
Neste laboratório, aprendemos como criar um contêiner Docker e, em seguida, criar um checkpoint de seu estado atual usando o comando docker checkpoint create. Começamos puxando a imagem ubuntu e executando um contêiner chamado checkpoint-test em modo detached com o comando sleep infinity. Verificamos se o contêiner estava em execução usando docker ps. Finalmente, criamos um checkpoint chamado my-checkpoint para o contêiner checkpoint-test.



