Como usar o comando docker context update para modificar a configuração do contexto

DockerBeginner
Pratique Agora

Introdução

Neste laboratório, exploraremos como modificar a configuração de contextos Docker existentes usando o comando docker context update. Começaremos criando um novo contexto Docker para trabalhar.

Após a criação do contexto, demonstraremos como atualizar sua descrição e alterar o endpoint Docker ao qual ele se conecta. Finalmente, verificaremos se a configuração do contexto foi atualizada com sucesso. Este exercício prático fornecerá experiência prática no gerenciamento e modificação de contextos Docker para conectar a diferentes daemons Docker.

Criar um novo contexto Docker

Nesta etapa, aprenderemos como criar um novo contexto Docker. Um contexto Docker é uma forma de gerenciar conexões a diferentes daemons Docker. Por padrão, o Docker usa o contexto default, que se conecta ao daemon Docker local. No entanto, você pode criar novos contextos para se conectar a daemons Docker remotos ou outras plataformas de orquestração de contêineres.

Para criar um novo contexto Docker, usamos o comando docker context create. Este comando requer um nome para o novo contexto e o endpoint do daemon Docker ao qual ele deve se conectar. Para este laboratório, criaremos um contexto chamado my-context que se conecta ao daemon Docker local.

Abra seu terminal e execute o seguinte comando:

docker context create my-context --docker host=unix:///var/run/docker.sock

Este comando cria um novo contexto chamado my-context. A opção --docker host=unix:///var/run/docker.sock especifica que este contexto deve se conectar ao daemon Docker via o socket Unix em /var/run/docker.sock. Este é o local padrão para o socket Docker na maioria dos sistemas Linux.

Após executar o comando, você deverá ver uma saída semelhante a esta, indicando que o contexto foi criado com sucesso:

my-context
Successfully created context "my-context"

Agora que criamos o contexto, podemos verificar sua existência listando os contextos disponíveis. Use o comando docker context ls:

docker context ls

Você deverá ver uma lista de contextos, incluindo o contexto default e o recém-criado my-context. A saída será algo parecido com isto:

NAME                DESCRIPTION                               DOCKER ENDPOINT                               KUBERNETES ENDPOINT   ORCHESTRATOR
default *           Current DOCKER_HOST                         unix:///var/run/docker.sock                                           swarm
my-context                                                    unix:///var/run/docker.sock

O asterisco (*) ao lado de default indica que ele é atualmente o contexto ativo. Aprenderemos como alternar entre contextos em uma etapa posterior.

Atualizar a descrição do contexto

Nesta etapa, atualizaremos a descrição do contexto Docker que criamos na etapa anterior. Adicionar uma descrição a um contexto pode ser útil para lembrar para que o contexto é usado, especialmente quando você tem vários contextos.

Para atualizar um contexto Docker, usamos o comando docker context update. Este comando requer o nome do contexto que você deseja atualizar e as opções que deseja alterar. Atualizaremos o contexto my-context e adicionaremos uma descrição a ele.

Abra seu terminal e execute o seguinte comando:

docker context update my-context --description "My local Docker context"

Este comando atualiza o contexto my-context e define sua descrição como "My local Docker context".

Após executar o comando, você deverá ver uma saída semelhante a esta, confirmando a atualização:

my-context
Successfully updated context "my-context"

Agora, vamos verificar se a descrição foi atualizada. Podemos usar o comando docker context ls novamente para listar os contextos e ver suas descrições:

docker context ls

Você agora deverá ver a descrição "My local Docker context" associada ao my-context. A saída será assim:

NAME                DESCRIPTION                 DOCKER ENDPOINT                               KUBERNETES ENDPOINT   ORCHESTRATOR
default *           Current DOCKER_HOST         unix:///var/run/docker.sock                                           swarm
my-context          My local Docker context     unix:///var/run/docker.sock

Adicionar descrições é uma boa prática para organizar seus contextos Docker.

Atualizar o endpoint Docker do contexto

Nesta etapa, atualizaremos o endpoint Docker associado ao nosso my-context. Embora em um cenário do mundo real você possa atualizar o endpoint para apontar para um daemon Docker remoto, para este laboratório, demonstraremos o processo alterando o endpoint para um formato ligeiramente diferente que ainda aponta para o daemon local. Isso mostra como você modificaria os detalhes da conexão, se necessário.

Para atualizar o endpoint Docker, usamos o comando docker context update novamente, mas desta vez especificamos a opção --docker host com o novo endpoint. Mudaremos o endpoint de unix:///var/run/docker.sock para unix://var/run/docker.sock (removendo a barra extra após unix:).

Abra seu terminal e execute o seguinte comando:

docker context update my-context --docker host=unix://var/run/docker.sock

Este comando atualiza o contexto my-context e altera seu endpoint Docker.

Após executar o comando, você deverá ver uma saída semelhante a esta, confirmando a atualização:

my-context
Successfully updated context "my-context"

Agora, vamos verificar se o endpoint Docker foi atualizado. Podemos usar o comando docker context ls novamente para listar os contextos e ver seus endpoints:

docker context ls

Você agora deverá ver o endpoint Docker atualizado unix://var/run/docker.sock associado ao my-context. A saída será assim:

NAME                DESCRIPTION                 DOCKER ENDPOINT             KUBERNETES ENDPOINT   ORCHESTRATOR
default *           Current DOCKER_HOST         unix:///var/run/docker.sock                                           swarm
my-context          My local Docker context     unix://var/run/docker.sock

Atualizar o endpoint é crucial quando você precisa alterar como seu contexto Docker se conecta ao daemon Docker, como mudar de uma conexão local para uma remota.

Verificar a configuração do contexto atualizada

Nesta etapa final, realizaremos uma verificação abrangente do my-context para garantir que tanto a descrição quanto o endpoint Docker foram atualizados corretamente. Usaremos o comando docker context inspect, que fornece informações detalhadas sobre um contexto específico.

Abra seu terminal e execute o seguinte comando:

docker context inspect my-context

Este comando exibirá um documento JSON contendo os detalhes de configuração do my-context. Estamos procurando os campos Description e Docker.Endpoint dentro desta saída.

A saída deve ser semelhante a esta (a saída exata pode variar ligeiramente dependendo da sua versão e ambiente Docker):

[
  {
    "Name": "my-context",
    "Metadata": {
      "Description": "My local Docker context"
    },
    "Endpoints": {
      "docker": {
        "Host": "unix://var/run/docker.sock"
      }
    },
    "TLSMaterial": {},
    "Storage": "my-context"
  }
]

Examine a saída para confirmar que o campo Description é "My local Docker context" e o campo Docker.Endpoint é "unix://var/run/docker.sock". Isso confirma que as atualizações que fizemos nas etapas anteriores foram bem-sucedidas.

Esta etapa conclui nosso laboratório sobre a criação e atualização de contextos Docker. Você aprendeu como criar um novo contexto, adicionar uma descrição e modificar seu endpoint Docker. Compreender os contextos Docker é essencial para gerenciar conexões a diferentes ambientes Docker.

Resumo

Neste laboratório, aprendemos como criar um novo contexto Docker usando o comando docker context create, especificando um nome e o endpoint Docker. Em seguida, verificamos a criação do novo contexto listando todos os contextos disponíveis com docker context ls.

Após a criação, exploramos como modificar a configuração de um contexto existente usando o comando docker context update. Especificamente, atualizamos a descrição e o endpoint Docker do contexto recém-criado. Finalmente, confirmamos que essas atualizações foram aplicadas com sucesso, listando novamente os contextos e observando as alterações na saída.