CodeGym /Cursos /Docker SELF /Trabajo con configuraciones y secretos

Trabajo con configuraciones y secretos

Docker SELF
Nivel 20 , Lección 0
Disponible

6.1 Comando docker config

Docker ofrece mecanismos integrados para gestionar configuraciones y secretos, lo que permite manejar de forma segura y conveniente archivos de configuración y datos confidenciales en contenedores. Estos mecanismos ayudan a mejorar la seguridad y simplificar la gestión de configuraciones en sistemas distribuidos. En esta lección, vamos a ver cómo usar los comandos docker config y docker secret, dando ejemplos y mejores prácticas.

Conceptos básicos sobre configuraciones

El comando docker config permite gestionar archivos de configuración que pueden ser utilizados por servicios en Docker Swarm. Las configuraciones ofrecen una manera conveniente de pasar configuraciones y parámetros de aplicaciones.

Comandos principales de docker config

  1. docker config create — Crear una nueva configuración
  2. docker config ls — Listar todas las configuraciones
  3. docker config inspect — Obtener información sobre una configuración
  4. docker config rm — Eliminar una configuración

Ejemplo de uso de docker config

Creación de una configuración

Para crear una configuración, se utiliza el comando docker config create. Como ejemplo, vamos a crear un archivo de configuración para Nginx.

Crea el archivo nginx.conf:

nginx

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

Crea la configuración en Docker:

Terminal

docker config create nginx_config ./nginx.conf

2. Listar todas las configuraciones

Para ver todas las configuraciones creadas, se utiliza el comando docker config ls:

Terminal

docker config ls

Salida del comando:

Terminal

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

3. Usar la configuración en un servicio

Crea un servicio utilizando la configuración creada:

Terminal

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

4. Eliminar una configuración

Para eliminar una configuración, se utiliza el comando docker config rm:

Terminal

docker config rm nginx_config

6.2 Comando docker secret

El comando docker secret te permite manejar "secretos", como contraseñas, claves API y certificados, que pueden ser usados de forma segura por los servicios en Docker Swarm. Los secretos se almacenan cifrados y solo están disponibles para los servicios que los utilizan.

Comandos principales de docker secret

  1. docker secret create — Crear un nuevo secreto
  2. docker secret ls — Listar todos los secretos
  3. docker secret inspect — Obtener información sobre un secreto
  4. docker secret rm — Eliminar un secreto

Ejemplo de uso de docker secret

1. Creación de un secreto

Para crear un secreto, se usa el comando docker secret create. Como ejemplo, vamos a crear un secreto para la contraseña de una base de datos.

Crea un archivo db_password.txt:

Text

miclavesupersecreta

Crea el secreto en Docker:

Terminal

docker secret create db_password ./db_password.txt

2. Listar todos los secretos

Para ver todos los secretos creados, usa el comando docker secret ls:

Terminal

docker secret ls

Salida del comando:

Terminal

ID                                                                                    NAME           CREATED             UPDATED
f8f8ff8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8   db_password    hace 10 segundos     hace 10 segundos

3. Uso del secreto en un servicio

Crea un servicio usando el secreto creado:

Terminal

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

4. Eliminación de un secreto

Para eliminar un secreto, usa el comando docker secret rm:

Terminal

docker secret rm db_password

6.3 Ejemplos prácticos y mejores prácticas

Ejemplos prácticos y mejores prácticas

Ejemplo 1: Usar configuraciones y secretos en una aplicación web

Crear un archivo de configuración y un secreto

Terminal

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

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

Crear servicios que usen configuraciones y secretos

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

Ejemplo 2: Actualización de una configuración

Actualizar el contenido del archivo de configuración

Modifica el archivo nginx.conf:

nginx

user www-data;
worker_processes 4;

Crear una nueva versión de la configuración

Terminal

docker config create nginx_config_v2 ./nginx.conf

Actualizar el servicio con la nueva configuración

Terminal

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