User Tools

Site Tools


doc:appunti:linux:sa:docker

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:linux:sa:docker [2026/07/29 11:19] – [Aggiornamento di una immagine e nuovo container] niccolodoc:appunti:linux:sa:docker [2026/07/29 12:40] (current) – [Comandi utili] niccolo
Line 147: Line 147:
 FIXME FIXME
  
-===== Aggiornamento di una immagine e nuovo container =====+===== Aggiornamento di una immagine ===== 
 + 
 +Le immagini sono le basi (copie statiche) da cui si creano i container (processi in esecuzione).
  
 Si verifica quale immagine è stata scaricata in precedenza: Si verifica quale immagine è stata scaricata in precedenza:
Line 185: Line 187:
 </code> </code>
  
-FIXME+===== Creazione di un nuovo container =====
  
-==== Comandi utili ====+È possibile creare un nuovo container da una stessa immagine, ma si deve provvedere a: 
 + 
 +  * Mappare eventuali porte TCP/IP su porte diverse 
 +  * Assegnare un nome diverso 
 +  * Eventualmente mappare volumi diversi 
 + 
 +In questo esempio l'immagine metabase non usa volumi, quindi è sufficiente specificare un mapping opportuno della porta 3000 e assegnare un nome diverso al container: 
 + 
 +<code> 
 +docker run -d -p 3001:3000 \ 
 +  --name metabase_63 \ 
 +  metabase/metabase:latest 
 +</code> 
 + 
 +Anche questo container può essere modificato per l'auto-restart (a meno che non sia stato fermato manualmente): 
 + 
 +<code> 
 +docker update --restart unless-stopped metabase_63 
 +</code> 
 + 
 + 
 +===== Comandi utili =====
  
 Vede i container esistenti, anche quelli fermi: Vede i container esistenti, anche quelli fermi:
Line 216: Line 239:
 23c599ebc5b7   host      host      local 23c599ebc5b7   host      host      local
 3d834c952653   none      null      local 3d834c952653   none      null      local
 +</code>
 +
 +Verifica quali //mounts// usa un container:
 +
 +<code>
 +docker inspect metabase --format '{{.Mounts}}'
 +[]
 +</code>
 +
 +Nell'esempio sopra il container non monta niente dalla macchina ospite, quindi è possibile creare una nuova istanza senza il rischio di conflitti. Nei //mounts// si potrebbero eventualmente trovare volumi veri e propri oppure punti di montaggio di tipo //bind//:
 +
 +<code>
 + {
 +    "Type": "volume",
 +    "Name": "metabase-data",
 +    "Source": "/var/lib/docker/volumes/metabase-data/_data",
 +    "Destination": "/metabase-data1"
 +  }
 +</code>
 +
 +<code>
 +  {
 +    "Type": "bind",
 +    "Source": "/srv/metabase",
 +    "Destination": "/metabase-data2"
 +  }
 +</code>
 +
 +In tal caso va verificato che i due container in esecuzione contemporaneamente non creino problemi a scrivere sugli stessi volumi.
 +
 +Esegue un comando shell in un container, ad esempio il comando ''ls -l /metabase.db/'' nel container metabase:
 +
 +<code>
 +docker exec metabase ls -l /metabase.db/
 +</code>
 +
 +Copia una directory intera dal container al filesystem della macchina ospitante:
 +
 +<code>
 +docker cp metabase:/metabase.db/ ./metabase-backup.db
 +</code>
 +
 +Copia due file dal filesystem locale veso il container:
 +
 +<code>
 +docker cp ./metabase-backup.db/metabase.db.mv.db    metabase:/metabase.db/
 +docker cp ./metabase-backup.db/metabase.db.trace.db metabase:/metabase.db/
 +</code>
 +
 +Esegue una shell interattiva nel container:
 +
 +<code>
 +docker exec -it metabase sh
 </code> </code>
  
doc/appunti/linux/sa/docker.1785316780.txt.gz · Last modified: by niccolo