GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Come copiare file tra host e contenitore Docker

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

Se vuoi copiare i file dal tuo sistema host al container, dovresti usare il comando docker cp in questo modo:

docker cp host_source_path container:destination_path

Se vuoi copiare i file dal contenitore al sistema host, usa 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 la finestra mobile.

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

Elenca prima i contenitori in esecuzione utilizzando docker ps comando:

[email protected]:~$ 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 della finestra mobile è ubu_container . e l'ID contenitore è 8353c6f43fba .

Se vuoi verificare che i file siano stati copiati correttamente, puoi entrare nel 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 chiamato 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, visualizzerai un errore:

[email protected]:~$ 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 contenitore invece del nome del contenitore:

docker cp a.py 8353c6f43fba:/home/dir1
Docker Run vs Start vs Create:Differenza spiegata Per un principiante di Docker, termini come Docker Start, Docker Run e Docker Create potrebbero creare confusione. Questo articolo spiega la differenza con esempi. Manuale LinuxAbhishek Prakash

2. Copia i file dal contenitore Docker al sistema host

Il comando docker cp viene eseguito solo nel sistema host. Non puoi 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. Copia le directory tra il container 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 hai bisogno di tali opzioni. Lo stesso comando funziona per copiare sia i file che le 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à di archiviazione 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 com'è facile copiare file tra host e container usando il comando docker cp.

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


Docker
  1. Come installare Docker e distribuire uno stack LAMP

  2. Come e perché utilizzare un host Docker remoto

  3. Come copiare file tra i pod Kubernetes e la tua macchina

  4. Come creare un'immagine Docker da un contenitore e un file Docker

  5. Come accedere allo spazio dei nomi di rete di Docker Container dall'host

Come eseguire SSH in un contenitore Docker ed eseguire comandi

Come connettersi a Localhost all'interno di un contenitore Docker

Come utilizzare Docker Cp per copiare file tra host e contenitori

Come distribuire e gestire un contenitore Docker MongoDB

Come copiare file con Docker cp nel tuo Docker Container

Come accedere ai file al di fuori di un contenitore Docker