Ce face docker cp
Comanda docker cp copiază fișiere în ambele direcții între sistemul de fișiere al gazdei și cel al unui container. Partea care se referă la container are forma nume_container:/cale.
Funcționează atât pe containere care rulează, cât și pe cele oprite, ceea ce o face utilă pentru a recupera jurnale sau fișiere generate dintr-un container care a eșuat. Nu necesită ca imaginea să conțină tar sau un shell.
Pentru sincronizare permanentă între gazdă și container (de exemplu codul sursă în dezvoltare) folosește un bind mount, nu copieri repetate.
Opțiuni și argumente
| Opțiune / Parametru | Descriere |
|---|---|
container:cale |
Calea din container; poate fi absolută sau relativă la rădăcina containerului. |
cale_locală |
Calea de pe gazdă; - înseamnă stdin/stdout ca arhivă tar. |
-a, --archive |
Păstrează proprietarul (UID/GID) fișierelor. |
-L, --follow-link |
Urmează legăturile simbolice din sursă. |
-q, --quiet |
Nu afișa progresul copierii (Docker 24+). |
Exemple
Exemplul 1: Extragerea configurației implicite Nginx
Copiem fișierul din container în directorul curent pentru a-l modifica.
docker cp web:/etc/nginx/conf.d/default.conf ./default.conf
Ieșire în terminal
Successfully copied 2.56kB to /home/dexter/proiect/default.conf
Exemplul 2: Copierea unui fișier în container
Punem o pagină nouă în directorul servit de Nginx.
docker cp ./index.html web:/usr/share/nginx/html/index.html
Ieșire în terminal
Successfully copied 2.05kB to web:/usr/share/nginx/html/index.html
Greșeli frecvente
- Copierea fișierelor într-un container ca soluție permanentă: la recrearea containerului modificările dispar. Pune fișierele în imagine (Dockerfile) sau într-un volum.
- Folosirea ID-ului imaginii în loc de numele/ID-ul containerului:
docker cplucrează doar cu containere.
Comenzi înrudite
docker exec: Rulează o comandă suplimentară într-un container care rulează deja.docker run -v / --mount: Atașează volume, directoare de pe gazdă (bind mounts) sau memorie RAM (tmpfs) la un container.docker volume: Creează, listează, inspectează și șterge volume gestionate de Docker pentru date persistente.