CodeGym /Cursos /Docker SELF /Trabalhando com configurações e segredos

Trabalhando com configurações e segredos

Docker SELF
Nível 20 , Lição 0
Disponível

6.1 Comando docker config

O Docker oferece mecanismos embutidos pra gerenciar configurações e segredos, o que facilita e torna mais seguro o gerenciamento de arquivos de configuração e dados confidenciais nos containers. Esses mecanismos ajudam a melhorar a segurança e simplificar a administração de configurações em sistemas distribuídos. Nessa aula, vamos ver como usar os comandos docker config e docker secret, com exemplos e boas práticas.

Fundamentos do trabalho com configurações

O comando docker config permite gerenciar arquivos de configuração que podem ser usados pelos serviços no Docker Swarm. As configurações oferecem uma forma prática de passar parâmetros e ajustes pro aplicativo.

Principais comandos do docker config

  1. docker config create — Criação de uma nova configuração
  2. docker config ls — Lista todas as configurações
  3. docker config inspect — Obtém informações sobre uma configuração
  4. docker config rm — Remove uma configuração

Exemplo de uso do docker config

Criando uma configuração

Pra criar uma configuração, usa-se o comando docker config create. Como exemplo, vamos criar um arquivo de configuração pro Nginx.

Crie o arquivo nginx.conf:

nginx

user www-data;
worker_processes auto;
pid /run/nginx.pid;
        
events {
    worker_connections 768;
}
        
http {
    server {
        listen 80;
        location / {
            return 200 'Olá, Mundo!';
            add_header Content-Type text/plain;
        }
    }
}

Crie a configuração no Docker:

Terminal

docker config create nginx_config ./nginx.conf

2. Lista de todas as configurações

Pra ver todas as configurações criadas, usa-se o comando docker config ls:

Terminal

docker config ls

Saída do comando:

Terminal

ID                                                                                       NAME           CREATED             UPDATED
f8f8ff8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8   nginx_config    10 seconds ago     10 seconds ago

3. Usando a configuração no serviço

Crie um serviço usando a configuração criada:

Terminal

docker service create --name nginx --config source=nginx_config,target=/etc/nginx/nginx.conf -p 8080:80 nginx

4. Removendo uma configuração

Pra remover uma configuração, usa-se o comando docker config rm:

Terminal

docker config rm nginx_config

6.2 Comando docker secret

O comando docker secret permite gerenciar "segredos", como senhas, chaves API e certificados, que podem ser usados com segurança por serviços no Docker Swarm. Os segredos são armazenados de forma criptografada e estão disponíveis apenas para os serviços que os utilizam.

Principais comandos do docker secret

  1. docker secret create — Criação de um novo segredo
  2. docker secret ls — Lista de todos os segredos
  3. docker secret inspect — Obtenção de informações sobre um segredo
  4. docker secret rm — Remoção de um segredo

Exemplo de uso do docker secret

1. Criando um segredo

Para criar um segredo, usamos o comando docker secret create. Vamos criar um segredo para a senha do banco de dados como exemplo.

Crie um arquivo db_password.txt:

Text

minhasenhasecreta

Crie o segredo no Docker:

Terminal

docker secret create db_password ./db_password.txt

2. Lista de todos os segredos

Para ver todos os segredos criados, use o comando docker secret ls:

Terminal

docker secret ls

Saída do comando:

Terminal

ID                                                                                    NAME           CREATED             UPDATED
f8f8ff8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8   db_password    10 seconds ago     10 seconds ago

3. Usando o segredo em um serviço

Crie um serviço usando o segredo criado:

Terminal

docker service create --name postgres --secret db_password -e 
POSTGRES_PASSWORD_FILE=/run/secrets/db_password postgres

4. Removendo um segredo

Para remover um segredo, use o comando docker secret rm:

Terminal

docker secret rm db_password

6.3 Exemplos práticos e melhores práticas

Exemplos práticos e melhores práticas

Exemplo 1: Uso de configurações e segredos em uma aplicação web

Criando um arquivo de configuração e segredo

Terminal

echo "user www-data;" > ./nginx.conf
echo "worker_processes auto;" >> ./nginx.conf
docker config create nginx_config ./nginx.conf

echo "mysenhaprincipal" > ./db_password.txt
docker secret create db_password ./db_password.txt

Criando serviços que usam configurações e segredos

Terminal

docker service create --name nginx --config source=nginx_config,target=/etc/nginx/nginx.conf -p 
8080:80 nginx

docker service create --name postgres --secret db_password -e 
POSTGRES_PASSWORD_FILE=/run/secrets/db_password postgres

Exemplo 2: Atualizando uma configuração

Atualizando o conteúdo do arquivo de configuração

Edite o arquivo nginx.conf:

nginx

user www-data;
worker_processes 4;

Criando uma nova versão da configuração

Terminal

docker config create nginx_config_v2 ./nginx.conf

Atualizando o serviço com a nova configuração

Terminal

docker service update --config-rm nginx_config --config-add 
source=nginx_config_v2,target=/etc/nginx/nginx.conf nginx
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION