Ma abbastanza elogi su Docker. In questo articolo, discuteremo di come copiare i file da e verso un contenitore al sistema host e viceversa."
Iniziamo
Docker CP
Docker CP è un'utilità della linea di comando che consente di copiare file e directory tra i sistemi. Il comando assume una sintassi molto semplice che consente un flusso di lavoro facile.
La sintassi del comando:
Docker CP [Options] Container: SRC_Path Dest_Path |-L'utilità CP copierà i file specificati da SRC_Path su Dest_Path. Ciò consente di copiare dal contenitore nel sistema host e viceversa.
Il contenitore può essere eseguito o interrompere lo stato e il comando eseguirà correttamente l'operazione di copia.
Se viene specificata una directory, il comando copierà i file in modo ricorsivo nella destinazione specificata.
Per copiare i file dal sistema host a un contenitore, è possibile utilizzare la sintassi:
$ Docker CP Host_Path Container_id: PathLa stessa sintassi del comando si applica quando si desidera copiare i file dal contenitore al sistema host:
$ Docker CP Container_ID: src_path host_pathVediamo come possiamo raggiungere questo obiettivo con esempi pratici.
Ottieni contenitori in esecuzione
Il primo passo è ottenere i nomi e gli ID dei contenitori in esecuzione. Possiamo farlo con il comando Docker PS.
$ Docker PSUna volta ottenuto il contenitore e il nome o l'ID, possiamo procedere. È possibile ottenere l'ID nelle colonne ID e nomi del contenitore.
Copia i file dal sistema host a container
Supponiamo di avere un file chiamato backup.Tar sul desktop del sistema host e vuoi copiarlo nel contenitore Debian11.
Possiamo eseguire il comando:
Docker CP ~/Desktop/Backups.Tar Debian11:/HomeIl comando sopra copierà i backup.File di catrame nella directory home del contenitore specificato.
Possiamo verificare che il file esista eseguendo il comando:
$ Docker Exec -ti Debian11 /Bin /BashIl comando sopra dovrebbe consentire di accedere al contenitore e di generare una shell bash.
Ora puoi elencare i file e le directory nel contenitore come:
root@f657ea827600: /# ls -la /homePossiamo vedere che il file è stato copiato correttamente nel contenitore.
Se si desidera utilizzare l'ID contenitore, è possibile eseguire il comando:
Docker CP ~/Desktop/Backups.TAR F657EA827600:/HomeNota: se un file con un nome simile esiste come percorso di destinazione specificato, il comando lo sovrascriverà senza prompt.
Docker Copy File da Container a Host
Possiamo anche utilizzare il comando per copiare i file dal contenitore nel sistema host. Ad esempio, supponiamo di voler copiare i registri dal contenitore nella directory dei registri nella cartella desktop dell'host.
Possiamo eseguire il comando:
$ sudo Docker CP Debian11:/var/log/~/desktop/logsNel comando sopra, diciamo al comando Docker CP di copiare i file dalla directory /var /log nella directory di Debian11 nella directory dei registri nel sistema host.
Possiamo verificarlo eseguendo il comando:
$ ls -ls ~/desktop/logsAttributi Docker CP Preserve
Noterai che una volta che copiamo un file da e verso il sistema host, Docker non preserva gli attributi come autorizzazioni, UID, ecc.
Possiamo risolverlo aggiungendo il flag -a nel comando Docker CP.
$ Docker CP -a contenitore host_path: percorsoUn esempio è come mostrato:
Sudo Docker CP -A Debian11:/var/log/~/desktop/logsPossiamo vedere che le autorizzazioni sono simili a uno dei file copiati nel contenitore.
Conclusione
In questo tutorial, hai imparato come utilizzare il comando Docker CP per copiare i file da e verso un contenitore Docker al sistema host e viceversa.
Grazie per aver letto!!