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
docker config create
— Crear una nueva configuracióndocker config ls
— Listar todas las configuraciones-
docker config inspect
— Obtener información sobre una configuración 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
:
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:
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
:
docker config ls
Salida del comando:
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:
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
:
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
docker secret create
— Crear un nuevo secretodocker secret ls
— Listar todos los secretosdocker secret inspect
— Obtener información sobre un secretodocker 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
:
miclavesupersecreta
Crea el secreto en Docker:
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
:
docker secret ls
Salida del comando:
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:
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
:
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
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
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
:
user www-data;
worker_processes 4;
Crear una nueva versión de la configuración
docker config create nginx_config_v2 ./nginx.conf
Actualizar el servicio con la nueva configuración
docker service update --config-rm nginx_config --config-add
source=nginx_config_v2,target=/etc/nginx/nginx.conf nginx
GO TO FULL VERSION