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