6.1 Comando docker config
Docker offre meccanismi integrati per gestire configurazioni e segreti, che permettono di gestire in modo sicuro e comodo i file di configurazione e i dati riservati nei container. Questi meccanismi aiutano a migliorare la sicurezza e a semplificare la gestione delle configurazioni nei sistemi distribuiti. In questa lezione vedremo come usare i comandi docker config
e docker secret
, forniremo esempi e best practice.
Fondamenti del lavoro con le configurazioni
Il comando docker config
permette di gestire i file di configurazione che possono essere utilizzati dai servizi in Docker Swarm. Le configurazioni forniscono un modo comodo per passare impostazioni e parametri alle applicazioni.
Comandi principali docker config
docker config create
— Creare una nuova configurazionedocker config ls
— Elenco di tutte le configurazioni-
docker config inspect
— Mostrare informazioni sulla configurazione docker config rm
— Eliminare la configurazione
Esempio di utilizzo docker config
Creazione di una configurazione
Per creare una configurazione si utilizza il comando docker config create
. Come esempio, creeremo un file di configurazione per Nginx.
Crea il file nginx.conf
:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
}
http {
server {
listen 80;
location / {
return 200 'Ciao, Mondo!';
add_header Content-Type text/plain;
}
}
}
Crea la configurazione in Docker:
docker config create nginx_config ./nginx.conf
2. Elenco di tutte le configurazioni
Per visualizzare tutte le configurazioni create si utilizza il comando docker config ls
:
docker config ls
Output del comando:
ID NAME CREATED UPDATED
f8f8ff8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 nginx_config 10 seconds ago 10 seconds ago
3. Utilizzo della configurazione in un servizio
Crea un servizio utilizzando la configurazione creata:
docker service create --name nginx --config source=nginx_config,target=/etc/nginx/nginx.conf -p 8080:80 nginx
4. Eliminazione della configurazione
Per eliminare la configurazione si utilizza il comando docker config rm
:
docker config rm nginx_config
6.2 Comando docker secret
Il comando docker secret
ti permette di gestire "segreti", tipo password, chiavi API e certificati, che possono essere usati in sicurezza nei servizi in Docker Swarm. I segreti sono memorizzati in forma crittografata e accessibili solo ai servizi che li utilizzano.
Comandi principali di docker secret
docker secret create
— Creazione di un nuovo segretodocker secret ls
— Lista di tutti i segretidocker secret inspect
— Ottenere informazioni su un segretodocker secret rm
— Eliminazione di un segreto
Esempio di utilizzo di docker secret
1. Creazione di un segreto
Per creare un segreto, usa il comando docker secret create
. Ad esempio, creiamo un segreto per la password del database.
Crea un file db_password.txt
:
miaPasswordSegreta
Crea il segreto in Docker:
docker secret create db_password ./db_password.txt
2. Lista di tutti i segreti
Per visualizzare tutti i segreti creati, usa il comando docker secret ls
:
docker secret ls
Output del comando:
ID NAME CREATED UPDATED
f8f8ff8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8 db_password 10 secondi fa 10 secondi fa
3. Utilizzo di un segreto in un servizio
Crea un servizio usando il segreto creato:
docker service create --name postgres --secret db_password -e
POSTGRES_PASSWORD_FILE=/run/secrets/db_password postgres
4. Eliminazione di un segreto
Per eliminare un segreto, usa il comando docker secret rm
:
docker secret rm db_password
6.3 Esempi pratici e best practices
Esempi pratici e best practices
Esempio 1: Utilizzo di configurazioni e segreti in un'applicazione web
Creazione di un file di configurazione e di un segreto
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
Creazione di servizi che utilizzano configurazioni e segreti
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
Esempio 2: Aggiornare una configurazione
Aggiornamento del contenuto del file di configurazione
Modifica il file nginx.conf
:
user www-data;
worker_processes 4;
Creazione di una nuova versione della configurazione
docker config create nginx_config_v2 ./nginx.conf
Aggiornamento del servizio con la nuova configurazione
docker service update --config-rm nginx_config --config-add
source=nginx_config_v2,target=/etc/nginx/nginx.conf nginx
GO TO FULL VERSION