Introdução
Neste laboratório, você aprenderá como usar o comando docker checkpoint create para salvar o estado de um container em execução. Começaremos iniciando um container Ubuntu simples que servirá como alvo para nossas operações de checkpointing.
Após a configuração do container, você criará um checkpoint para o container em execução, capturando efetivamente seu estado atual. Em seguida, verificaremos se o checkpoint foi criado com sucesso. Finalmente, você explorará como criar um checkpoint e especificar um diretório personalizado para armazenar os dados do checkpoint. Essa experiência prática demonstrará a aplicação prática do checkpointing de containers Docker.
Iniciar um container para checkpoint
Nesta etapa, iniciaremos um container Docker simples que faremos checkpointing posteriormente. O checkpointing permite que você salve o estado de um container em execução e o restaure mais tarde. Isso é útil para migrar containers, depurar ou criar snapshots.
Primeiro, precisamos baixar a imagem ubuntu do Docker Hub. Esta imagem é pequena e adequada para nossa demonstração. Abra seu terminal no ambiente LabEx.
docker pull ubuntu
Você deve ver uma saída indicando que a imagem está sendo baixada. Após a conclusão do download, você pode verificar se a imagem está disponível localmente listando as imagens.
docker images
Procure por ubuntu na lista de imagens.
Agora, vamos iniciar um container baseado na imagem ubuntu. Executaremos um comando simples dentro do container que o mantém em execução, como sleep infinity. Também daremos um nome ao container para que seja mais fácil referenciá-lo mais tarde. Vamos chamá-lo de my-checkpoint-container.
docker run -d --name my-checkpoint-container ubuntu sleep infinity
A flag -d executa o container em modo detached (desacoplado), o que significa que ele é executado em segundo plano. A flag --name atribui um nome ao container. ubuntu é a imagem que estamos usando, e sleep infinity é o comando que será executado dentro do container para mantê-lo ativo.
Após executar o comando, o Docker exibirá o ID completo do container. Você pode verificar se o container está em execução listando os containers ativos.
docker ps
Você deve ver um container chamado my-checkpoint-container na lista com o status Up. Isso confirma que nosso container está em execução e pronto para ser checkpointed nas próximas etapas.
Criar um checkpoint para o container em execução
Nesta etapa, criaremos um checkpoint para o container em execução que iniciamos na etapa anterior. O checkpointing de um container salva seu estado atual, incluindo sua memória, processos e alterações no sistema de arquivos, no disco. Isso permite que você pause um container e o retome mais tarde do ponto exato em que foi feito o checkpoint.
Para criar um checkpoint, usamos o comando docker checkpoint create. Este comando requer o nome do container e um nome para o checkpoint. Vamos nomear nosso checkpoint my-first-checkpoint.
docker checkpoint create my-checkpoint-container my-first-checkpoint
Este comando levará um momento para ser executado, pois o Docker salva o estado do container. Você não verá muita saída se o comando for bem-sucedido.
Após criar o checkpoint, o container my-checkpoint-container ainda estará em execução. O checkpointing não para o container. Ele simplesmente cria um snapshot de seu estado.
Na próxima etapa, verificaremos se o checkpoint foi criado com sucesso e está disponível.
Verificar o checkpoint criado
Nesta etapa, verificaremos se o checkpoint que criamos na etapa anterior existe e está associado ao nosso container. O Docker fornece um comando para listar os checkpoints para um container específico.
Para listar os checkpoints para o my-checkpoint-container, use o comando docker checkpoint ls seguido pelo nome do container.
docker checkpoint ls my-checkpoint-container
Este comando exibirá uma lista de checkpoints disponíveis para o container especificado. Você deve ver my-first-checkpoint listado na saída. Isso confirma que o checkpoint foi criado com sucesso e está pronto para ser usado para restaurar o estado do container, se necessário.
Ser capaz de listar checkpoints é importante para gerenciá-los, especialmente quando você tem vários checkpoints para um único container ou checkpoints para diferentes containers.
Na próxima etapa, exploraremos a criação de um checkpoint em um diretório diferente.
Criar um checkpoint com um diretório personalizado
Nesta etapa, aprenderemos como criar um checkpoint em um diretório específico de nossa escolha. Por padrão, o Docker armazena checkpoints em um local padrão dentro do diretório raiz de dados do Docker. No entanto, você pode querer armazenar checkpoints em um local diferente, por exemplo, em um disco diferente ou em um armazenamento compartilhado.
Para especificar um diretório personalizado para o checkpoint, usamos a flag --checkpoint-dir com o comando docker checkpoint create. Primeiro, vamos criar um novo diretório em nosso diretório home onde armazenaremos o checkpoint.
mkdir ~/project/my-checkpoints
Agora, podemos criar outro checkpoint para nosso container em execução my-checkpoint-container, mas desta vez, especificaremos o diretório ~/project/my-checkpoints como o local do checkpoint. Vamos nomear este novo checkpoint my-second-checkpoint.
docker checkpoint create --checkpoint-dir ~/project/my-checkpoints my-checkpoint-container my-second-checkpoint
Este comando criará os dados do checkpoint dentro do diretório ~/project/my-checkpoints. Você pode verificar o conteúdo deste diretório para ver os arquivos do checkpoint.
ls ~/project/my-checkpoints/my-second-checkpoint
Você deve ver vários arquivos e diretórios criados pelo processo de checkpointing.
Embora tenhamos especificado um diretório personalizado, o checkpoint ainda está associado ao container. Você pode listar os checkpoints para o container novamente, e verá tanto my-first-checkpoint quanto my-second-checkpoint listados.
docker checkpoint ls my-checkpoint-container
Isso mostra que o Docker acompanha os checkpoints, independentemente de sua localização de armazenamento. Usar um diretório personalizado oferece mais flexibilidade no gerenciamento de seus dados de checkpoint.
Resumo
Neste laboratório, aprendemos como usar o comando docker checkpoint create para salvar o estado de um container em execução. Começamos iniciando um container ubuntu simples chamado my-checkpoint-container usando docker run -d --name my-checkpoint-container ubuntu sleep infinity, garantindo que ele estivesse em execução no modo detached. Verificamos o status do container usando docker ps.
Em seguida, prosseguimos para criar um checkpoint para o container em execução. Este processo envolve o uso do comando docker checkpoint create para capturar o estado atual do container, incluindo sua memória e processos, permitindo a restauração posterior. Também exploramos como verificar a criação bem-sucedida do checkpoint e como especificar um diretório personalizado para armazenar os dados do checkpoint.



