Como usar o comando docker secret rm para remover secrets

DockerBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como gerenciar dados sensíveis de forma segura no Docker usando secrets (segredos). Você começará criando um Docker secret para armazenar informações confidenciais.

Após a criação, você verificará se o secret foi adicionado com sucesso ao seu ambiente Docker, listando os secrets existentes. Finalmente, você praticará a remoção do secret e confirmará sua remoção listando os secrets novamente. Este exercício prático irá guiá-lo pelos comandos essenciais para criar, listar e remover Docker secrets.

Criar um secret

Nesta etapa, você aprenderá como criar um secret no Docker. Docker secrets são usados para gerenciar dados sensíveis, como senhas, chaves SSH e outras credenciais, que um container precisa em tempo de execução. Usar secrets é uma maneira mais segura de lidar com informações sensíveis em comparação com armazená-las diretamente na imagem do container ou passá-las como variáveis de ambiente.

Antes de criar um secret, vamos garantir que você tenha o ambiente Docker necessário configurado. A VM do LabEx vem com o Docker pré-instalado. Você pode verificar a versão do Docker executando:

docker version

Você deve ver uma saída semelhante a esta, indicando que o Docker está instalado e em execução:

Client: Docker Engine - Community
 Version:           20.10.21
 API version:       1.41
 Go version:        go1.16.15
 Git commit:        baedd2a
 Built:             Tue Oct 25 17:58:10 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.21
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.15
  Git commit:       363bd3a
  Built:            Tue Oct 25 17:56:32 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.8
  GitCommit:        9cd335e8e55e68bf582ae4525b3a13ffa8a49392
  Built:            Tue Oct 25 17:54:39 2022
 runc:
  Version:          1.1.4
  GitCommit:        v1.1.4-0-g5fd4c4d
  Built:            Tue Oct 25 17:54:25 2022
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
  Built:            Tue Oct 25 17:54:16 2022

Para criar um secret, você pode usar o comando docker secret create. Este comando lê dados sensíveis da entrada padrão ou de um arquivo e cria um secret no Docker.

Vamos criar um secret simples chamado my_password contendo o valor s3cr3t. Vamos canalizar (pipe) o valor do secret para o comando docker secret create.

echo "s3cr3t" | docker secret create my_password -

Após executar o comando, o Docker criará o secret e exibirá seu ID. A saída será semelhante a esta:

<secret_id>

O <secret_id> é um identificador único para o secret que você acabou de criar. Tenha isso em mente, pois você pode precisar dele para operações futuras.

Listar secrets para verificar a criação

Nesta etapa, você aprenderá como listar os secrets existentes no Docker para verificar se o secret que você criou na etapa anterior foi adicionado com sucesso.

Para listar todos os secrets gerenciados pelo Docker, você pode usar o comando docker secret ls. Este comando fornece uma lista de secrets, incluindo seu ID, nome e timestamp de criação.

Vamos executar o comando para ver os secrets:

docker secret ls

A saída deve mostrar o secret my_password que você criou na etapa anterior, juntamente com seu ID e hora de criação. A saída será semelhante a esta:

ID                          NAME                CREATED             UPDATED
<secret_id>                 my_password         About a minute ago  About a minute ago

Você pode ver o secret my_password listado, confirmando que ele foi criado com sucesso. O <secret_id> corresponderá ao ID que foi exibido quando você criou o secret.

Este comando é útil para gerenciar seus secrets e garantir que eles estejam configurados corretamente em seu ambiente Docker.

Remover um secret

Nesta etapa, você aprenderá como remover um secret no Docker. Remover secrets é importante para a segurança e para limpar seu ambiente Docker quando os secrets não são mais necessários.

Para remover um secret, você pode usar o comando docker secret rm seguido pelo nome ou ID do secret. Nas etapas anteriores, criamos um secret chamado my_password.

Vamos remover o secret my_password:

docker secret rm my_password

Após executar o comando, o Docker removerá o secret e exibirá o nome ou ID do secret que foi removido. A saída será semelhante a esta:

my_password

Isso confirma que o secret my_password foi removido com sucesso do seu ambiente Docker.

É uma boa prática remover secrets quando eles não estão mais em uso para minimizar o risco de acesso não autorizado a informações sensíveis.

Listar secrets para verificar a remoção

Nesta etapa, você listará os secrets do Docker novamente para verificar se o secret my_password que você removeu na etapa anterior não está mais presente.

Para listar todos os secrets, use o comando docker secret ls:

docker secret ls

Desta vez, a saída não deve incluir o secret my_password. Se não houver outros secrets no seu ambiente, a saída pode ser semelhante a esta:

ID                          NAME                CREATED             UPDATED

Se houver outros secrets, você os verá listados, mas my_password deve estar ausente. Isso confirma que a operação de remoção foi bem-sucedida.

Listar secrets após a remoção é uma boa maneira de garantir que dados sensíveis não sejam mais armazenados em seu ambiente Docker.

Resumo

Neste laboratório, você aprendeu como gerenciar dados sensíveis de forma segura no Docker usando secrets. Você começou verificando seu ambiente Docker e, em seguida, criou um secret chamado my_password usando o comando docker secret create, canalizando o valor do secret da entrada padrão.

Após criar o secret, você usou o comando docker secret ls para listar os secrets existentes e confirmar a criação bem-sucedida de my_password. Finalmente, você praticou a remoção do secret usando o comando docker secret rm e verificou sua remoção listando os secrets novamente, demonstrando o ciclo de vida completo de um secret do Docker.