Introdução
Neste laboratório, você aprenderá como usar efetivamente o comando docker context import. Começaremos criando e exportando um contexto Docker para um arquivo, demonstrando como empacotar suas configurações de contexto.
Após a exportação, você praticará a importação desse contexto de volta para o Docker, tanto do arquivo exportado quanto diretamente da entrada padrão. Finalmente, você verificará se o contexto importado é reconhecido corretamente e está disponível para uso em seu ambiente Docker.
Criar e exportar um contexto Docker
Nesta etapa, aprenderemos como criar um contexto Docker e exportá-lo para um arquivo. Um contexto Docker é uma maneira de gerenciar conexões com diferentes daemons Docker. Por padrão, o Docker se conecta ao daemon local. No entanto, você pode criar contextos para se conectar a daemons remotos ou outros ambientes como Docker Swarm ou Kubernetes.
Primeiro, vamos criar um novo contexto Docker chamado my-context. Configuraremos este contexto para se conectar ao daemon Docker local padrão.
docker context create my-context --docker "host=unix:///var/run/docker.sock"
Este comando cria um novo contexto chamado my-context e especifica o Docker host como o socket Unix padrão para o daemon local.
Em seguida, exportaremos este contexto recém-criado para um arquivo chamado my-context.tar.gz.
docker context export my-context -o ~/project/my-context.tar.gz
Este comando exporta o my-context para um arquivo tar.gz localizado em seu diretório ~/project. A flag -o especifica o caminho do arquivo de saída.
Você pode verificar se o arquivo foi criado listando o conteúdo do diretório ~/project.
ls ~/project/
Você deve ver my-context.tar.gz listado na saída.
Importar o contexto exportado de um arquivo
Na etapa anterior, exportamos um contexto Docker para um arquivo chamado my-context.tar.gz. Nesta etapa, importaremos este contexto de volta para o Docker a partir do arquivo.
Antes de importar, vamos primeiro remover o my-context existente para simular a importação de um contexto que não existe atualmente.
docker context rm my-context
Este comando remove o contexto Docker chamado my-context. Você pode verificar se ele foi removido listando os contextos novamente.
docker context ls
Você não deve mais ver my-context na lista.
Agora, vamos importar o contexto do arquivo ~/project/my-context.tar.gz.
docker context import my-context-from-file ~/project/my-context.tar.gz
Este comando importa o contexto do arquivo especificado e nomeia o contexto importado como my-context-from-file.
Após a conclusão da importação, você pode listar os contextos Docker novamente para ver o contexto recém-importado.
docker context ls
Você agora deve ver my-context-from-file na lista de contextos.
Importar o contexto exportado de stdin
Na etapa anterior, importamos um contexto Docker de um arquivo. Outra maneira de importar um contexto é canalizar os dados do contexto exportado diretamente para o comando docker context import via entrada padrão (stdin). Isso é útil quando você deseja importar um contexto sem salvá-lo em um arquivo primeiro.
Primeiro, vamos remover o contexto que importamos na etapa anterior para evitar conflitos.
docker context rm my-context-from-file
Agora, usaremos o comando cat para ler o conteúdo do arquivo my-context.tar.gz e canalizá-lo para o comando docker context import.
cat ~/project/my-context.tar.gz | docker context import my-context-from-stdin -
Neste comando, cat ~/project/my-context.tar.gz lê o conteúdo do arquivo. O símbolo de pipe | envia a saída do comando cat como entrada para o comando docker context import. O - no final do comando docker context import informa que ele deve ler os dados do contexto da entrada padrão. Estamos nomeando o contexto importado como my-context-from-stdin.
Após a conclusão do comando, você pode listar os contextos Docker para verificar se o contexto foi importado de stdin.
docker context ls
Você agora deve ver my-context-from-stdin na lista de contextos.
Verificar o contexto importado
Nas etapas anteriores, criamos, exportamos e, em seguida, importamos um contexto Docker usando dois métodos diferentes: de um arquivo e da entrada padrão. Nesta etapa final, verificaremos se o contexto importado é funcional e pode ser usado para interagir com o daemon Docker.
Primeiro, vamos listar os contextos disponíveis para confirmar que tanto my-context-from-file quanto my-context-from-stdin estão presentes.
docker context ls
Você deve ver ambos os contextos listados na saída.
Agora, vamos mudar para o contexto que importamos da entrada padrão, my-context-from-stdin.
docker context use my-context-from-stdin
Este comando define o contexto Docker atual como my-context-from-stdin. Quaisquer comandos Docker subsequentes agora usarão este contexto para se conectar ao daemon Docker.
Para verificar se o contexto está funcionando corretamente, vamos executar um comando Docker simples, como listar os contêineres em execução. Como estamos nos conectando ao daemon Docker local, este comando deve mostrar a mesma saída que executar docker ps sem especificar um contexto.
docker ps
Se o contexto estiver configurado corretamente, este comando deve ser executado com sucesso e exibir a lista de contêineres em execução (se houver).
Finalmente, vamos voltar para o contexto padrão.
docker context use default
Este comando muda o contexto Docker atual de volta para o daemon local padrão.
Resumo
Neste laboratório, aprendemos como gerenciar contextos Docker, criando, exportando e importando-os. Começamos criando um novo contexto Docker chamado my-context, configurado para se conectar ao daemon local, e então exportamos este contexto para um arquivo tar.gz.
Após a exportação, praticamos a importação do contexto de volta para o Docker. Primeiro, removemos o contexto original para simular a importação de um novo e, em seguida, importamos com sucesso o contexto do arquivo criado anteriormente usando o comando docker context import, dando-lhe um novo nome para distingui-lo.



