CodeGym /Corsi /Docker SELF /Lavorare con configurazioni e segreti

Lavorare con configurazioni e segreti

Docker SELF
Livello 20 , Lezione 0
Disponibile

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

  1. docker config create — Creare una nuova configurazione
  2. docker config ls — Elenco di tutte le configurazioni
  3. docker config inspect — Mostrare informazioni sulla configurazione
  4. 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:

nginx

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:

Terminale

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:

Terminale

docker config ls

Output del comando:

Terminale

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:

Terminale

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:

Terminale

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

  1. docker secret create — Creazione di un nuovo segreto
  2. docker secret ls — Lista di tutti i segreti
  3. docker secret inspect — Ottenere informazioni su un segreto
  4. docker 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:

Text

miaPasswordSegreta

Crea il segreto in Docker:

Terminal

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:

Terminal

docker secret ls

Output del comando:

Terminal

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:

Terminal

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:

Terminal

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

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

Creazione di servizi che utilizzano configurazioni e segreti

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

Esempio 2: Aggiornare una configurazione

Aggiornamento del contenuto del file di configurazione

Modifica il file nginx.conf:

nginx

user www-data;
worker_processes 4;

Creazione di una nuova versione della configurazione

Terminal

docker config create nginx_config_v2 ./nginx.conf

Aggiornamento del servizio con la nuova configurazione

Terminal

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