Copiare file da e verso un container Docker

  • Di
  • 2022-04-12 - 2 minuti
banner

Quando lavori con Docker, potrebbe essere necessario copiare file da e verso un container Docker e il tuo computer.

Dopo aver creato l’immagine Docker e aver ottenuto il vostro container, dover eseguire la build ancora e ancora solo per aggiungere un file al suo interno potrebbe essere noioso, perché capita che le immagini siano di dimensioni abbastanza grandi…

Docker però ci fornisce dei comandi molto utili che ci consentono di copiare senza problemi i file da e verso un container Docker e il sistema locale.

In questo articolo, discuteremo come utilizzare i comandi Docker cp vedendo degli esempi pratici!

Copia di file dal container al computer locale

Segui i passaggi seguenti per copiare un file da un contenitore Docker a un computer locale:

Crea un container

Come prova, è possibile utilizzare l’immagine di Ubuntu e creare un file di prova al suo interno, eseguendo i comandi riportati:

docker run -it --name my-container ubuntu
>>>
root@e625c04df0b0:/# cd home/
root@e625c04df0b0:/home# ls -la
total 8
drwxr-xr-x 2 root root 4096 Apr 15  2020 .
drwxr-xr-x 1 root root 4096 Apr  5 15:16 ..
root@e625c04df0b0:/home# touch myfile.txt
root@e625c04df0b0:/home# echo "pippo" > myfile.txt
root@e625c04df0b0:/home# cat myfile.txt
pippo

Trova l’ID del container

Adesso andiamo a recuperare l’ID del container da cui vogliamo copiare il file eseguendo il comando seguente:

docker ps -a
>>>
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
e3c6d689766e        ubuntu              "bash"              19 seconds ago      Up 19 seconds                           my-container

Copia il file sul tuo sistema locale

È possibile utilizzare il comando docker cp per copiare il file, specificando l’ID del container separato da “:” con il path assoluto del file e poi specificando il percorso -sempre assoluto- di dove verrà salvato in locale.

Il comando ha questa sintassi:

docker cp [CONTAINER_ID]:[PATH_ASSOLUTO_SORGENTE] [PATH_ASSOLUTO_DESTINAZIONE]

Esempio: docker cp 123abc:/home/folder/file.txt /tmp/file.txt

root@system:~$ docker cp e3c6d689766e:/home/myfile.txt /tmp/myfile.txt
root@system:~$ ls -la /tmp/
>>> -rw-r--r-- 1 root root 6 Apr 5 19:19 myfile.txt

Copia di file da locale al container

Puoi usare sempre l’istruzione cp con la seguente sintassi -tieni presente che il container dev’essere up&running-:

docker cp [PATH_ASSOLUTO_SORGENTE] [CONTAINER_ID]:[PATH_ASSOLUTO_DESTINAZIONE]

Esempio: docker cp 123abc:/home/folder/file.txt /tmp/file.txt

root@system:~$ docker cp /tmp/myfile.txt
e3c6d689766e:/home/myfile.txt

Per verificare che il file sia stato copiato correttamente, utilizzare il comando seguente:

root@system:~$ docker exec -it my-container  /bin/bash
root@e3c6d689766e:/# ls -la /tmp/
>>> -rw-r--r-- 1 root root 6 Apr 5 19:19 myfile.txt

Risorse utili

Post correlati

Partners

Community, aziende e persone che supportano attivamente il blog

Logo di Codemotion
Logo di GrUSP
Logo di Python Milano
Logo di Schrodinger Hat
Logo di Python Biella Group
Logo di Fuzzy Brains
Logo di Django Girls
Logo di Improove
Logo del libro open source
Logo di NgRome
Logo de La Locanda del Tech
Logo di Tomorrow Devs
Logo di Coderful

Non perderti gli ultimi aggiornamenti, iscriviti a TheRedCode Digest!

La tecnologia corre, e tu devi correre più veloce per rimanere sempre sul pezzo! 🚀

Riceverai una volta al mese (o anche meno) con codici sconto per partecipare agli eventi del settore, quiz per vincere dei gadget e i recap degli articoli più interessanti pubblicati sul blog

Ci sto!

#TheRedComics

Edizione di Novembre

A cura di Sophie Aiello, copy di Chiara Romano

Fumetto di agosto di Sophie Aiello

Vuoi diventare #tech content creator? 🖊️

Se vuoi raccontare la tua sul mondo #tech con dei post a tema o vuoi condividere la tua esperienza con la community, sei nel posto giusto! 😉

Manda una mail a collaborazioni[at]theredcode.it con la tua proposta e diventa la prossima penna del blog!

Ma sì, facciamolo!