Ricerca nel sito web

Esempio Docker cp: copia di file tra host e contenitore


Il comando docker copy consente di copiare file dall'host al contenitore e dal contenitore all'host. Scopri come utilizzare questo comando.

Il comando Docker cp è una pratica utility che consente di copiare file e cartelle tra un contenitore e il sistema host.

Se desideri copiare file dal tuo sistema host al contenitore, dovresti utilizzare il comando docker cp in questo modo:

docker cp host_source_path container:destination_path

Se desideri copiare file dal contenitore al sistema host, utilizza questo comando:

docker cp container:source_path host_destination_path

Potrebbe sembrare un po’ intimidatorio, quindi lascia che te lo spieghi con alcuni esempi pratici.

Esempi di comandi Docker cp

Nel mio tutorial, ho installato Docker su Ubuntu. Ma i passaggi sono gli stessi per tutte le distribuzioni che eseguono docker.

Spero che tu sappia come eseguire un contenitore docker perché avrai bisogno di un contenitore in esecuzione.

Elenca prima i tuoi contenitori in esecuzione utilizzando il comando docker ps:

abhishek@linux-console:~$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
8353c6f43fba        775349758637        "bash"              8 seconds ago       Up 7 seconds                            ubu_container

È necessario conoscere l'ID del contenitore o il nome del contenitore. Nel mio caso, il nome del contenitore docker è ubu_container. e l'ID contenitore è 8353c6f43fba.

Se vuoi verificare che i file siano stati copiati correttamente, puoi inserire il tuo contenitore nel modo seguente e quindi utilizzare i normali comandi Linux:

docker exec -it ubu_container bash

1. Copia i file dal sistema host al contenitore docker

La copia con docker cp è simile al comando copy in Linux.

Copierò un file denominato a.py nella directory home/dir1 nel contenitore.

docker cp a.py ubu_container:/home/dir1

Se il file viene copiato correttamente, non vedrai alcun output sullo schermo. Se il percorso di destinazione non esiste, vedresti un errore:

abhishek@linux-console:~$ sudo docker cp a.txt ubu_container:/home/dir2/subsub
Error: No such container:path: ubu_container:/home/dir2

Se il file di destinazione esiste già, verrà sovrascritto senza alcun avviso.

Puoi anche utilizzare l'ID del contenitore invece del nome del contenitore:

docker cp a.py 8353c6f43fba:/home/dir1

2. Copia i file dal contenitore docker al sistema host

Il comando docker cp viene eseguito solo nel sistema host. Non è possibile eseguirlo nel contenitore.

Anche se desideri copiare file dal contenitore docker al sistema host, devi essere nel sistema host e utilizzare il comando nel modo seguente:

sudo docker cp ubu_container:/home/dir1/new.txt  /home/abhishek

3. Copiare le directory tra il contenitore e il sistema host

Se vuoi copiare la directory in Linux usando il comando cp, dovrai usare l'opzione ricorsiva -r.

Ma nel comando docker cp non sono necessarie tali opzioni. Lo stesso comando funziona per copiare sia file che cartelle.

docker cp /home/abhishek/my_dir ubu_container:/home
sudo docker cp ubu_container:/home/my_dir  /home/abhishek

4. Copia file e directory con attributi originali

È possibile utilizzare la modalità archivio durante la copia con l'opzione -a. Con questo, puoi copiare tutti i permessi del file, UID e GID del file originale.

docker cp -a host_source_path container:destination_path
docker cp -a container:source_path host_destination_path

Questo è tutto. Vedi quanto è facile copiare file tra host e contenitore usando il comando docker cp.

Se hai domande o suggerimenti, faccelo sapere nel sistema dei commenti.

Articoli correlati: