Rinominare i container Docker: 3 consigli per principianti
Introduzione
Quando create un container Docker, ad esso viene assegnato un identificativo univoco universale (UUID). Questi UUID sono essenziali per evitare conflitti di denominazione e per favorire l’automazione senza l’intervento umano. Gli UUID identificano efficientemente i container per l’host e per la rete. Tuttavia richiedono un ulteriore sforzo da parte dell’utente per poter distinguere tra la più leggibile e lunga stringa di 64 caratteri e la più comune forma ridotta da 12 caratteri simile a qualcosa tipo 285c9f0f9d3d
.
In modo da agevolare gli utenti, Docker fonisce inoltre i container di un nome generato casualmente da due parole unite da un _, ad esempio evil_ptolemy
. Questo può rendere più facile distinguere un container da un altro, ma i nomi casuali non forniscono più informazioni riguardo la funzione del container rispetto all’UUID.
Ecco tre consigli che possono esservi d’aiuto quando inizierete ad imparare a lavorare con i container.
1 — Rinominate il container quando lo avviate
Aggiungendo --name=nome_sensato
al comando docker run
, sia nelle sessioni interattive che nell’output dei comandi come docker ps
, evil_ptolomy
diventa più riconoscibile. Ci sono tuttavia delle limitazioni. Siccome i nomi dei container deveno essere univoci, non potete rinominarli deliberatamente e far scalare un servizio al di fuori di un contenitore.
Nella linea di comando o in un Dockerfile:
docker run --name=nome_sensato
Se usiamo per esempio un container basato sull’immagine base nginx e lo avviamo in questo modo:
$ docker run --name nginx -d nginx
Il nome apparirà nella lista dei container avviati:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
08f333ef7216 nginx "nginx -g 'daemon off" 15 seconds ago Up 14 seconds 80/tcp, 443/tcp nginx
Mentre il nome appare nell’output di docker ps
e può essere usato per gestire il container, tale nome non apparirà nel prompt del container se lo aggiungete a tale container o nei file di log. Per fare in modo che ciò avvenga, avete bisogno di assegnare anche un hostname.
2 — Assegnare un hostname al container
Il valore fornito al comando --hostname
è presente in /etc/hostname
e in /etc/hosts
all’interno del container. Conseguentemente appare nel prompt. Esso svolge un ruolo nella configurazione DNS del container e può essere utile durante le fasi di apprendimento per la creazione di un multi-container. Non è semplice accedere da fuori del container, ma quel valore apparirà nei file di log del container e, quando quei file vengono scritti su un volume indipendente all’host, può essere più semplice identificare il container.
CLI e Dockerfile:
docker run --hostname=value
O docker run -h value
Mentre --name
e --hostname
sono entrambi utili per l’identificazione dei container, a volte non si tratta di denominare i container. Si tratta piuttosto di avere un container che si auto pulisca senza che ci si debba ricordare di farlo da soli.
3 — Eliminare automaticamente i container all’uscita
Durante il setup è utile che un container arrestato venga mantenuto dopo che siamo usciti da tale container. Potete conservare i dati come i file di log e consultare lo stato finale del container. In alcuni casi però si sa che il container che si sta eseguendo non è quello che si vuole solo quando si ha finito. In questo caso potete usare il parametro --rm
in modo da eliminarlo automaticamente all’uscita. Questo può aiutare a mantenere le cose pulite.
Fate attenzione però! Se state usando i volumi Docker, --rm
rimuoverà qualsiasi volume non indicato con un nome.
CLI e Dockerfile:
docker run --rm
Questo è molto utile quando state creando un’immagine e avete il bisogno di allegarla a un container avviato. Guardandovi attorno non volete che il vostro disco si riempia di container che non userete più.
Conclusioni
Ognuno di questi tre parametri per docker run
: --name
, --hostname
e --rm
, possono a loro modo rendere più semplice la comprensione delle cose mentre si impara Docker. Potete approfondire l’uso dei container e come lavorare con il comando docker run
seguendo la guida Lavorare con i container Docker.
Traduzione di Zantx dell’articolo https://www.digitalocean.com/community/tutorials/naming-docker-containers-3-tips-for-beginners Copyright © 2016 DigitalOcean™ Inc.