Cum se transferă fișiere către și dintr-un container Docker

Folosește comanda Docker docker cppentru a copia fișiere sau directoare între mașina locală și un container. Funcționează în ambele direcții, copiază directoarele recursiv și poate viza un container care rulează sau este oprit. Nu este nevoie să deschizi un shell în container sau să creezi o arhivă tar pentru o copie obișnuită.

Sintaxa de bază este docker cp SOURCE DESTINATION. Puneți numele sau ID-ul containerului înainte de două puncte pentru o cale de container: docker cp LOCAL_PATH CONTAINER:CONTAINER_PATHcopiază într-un container, în timp ce docker cp CONTAINER:CONTAINER_PATH LOCAL_PATHcopiază în afara acestuia. Referința docker cp din Docker documentează regulile de cale și director.

1. Găsiți numele sau ID-ul containerului

Rulați acest lucru dintr-un terminal unde comenzile Docker pot ajunge la Docker Engine:

docker ps -a

docker pslistează containerele care rulează; adăugarea -aafișează și containerele oprite. Folosește valoarea din NAMEScoloană sau un ID de container în comenzile de mai jos. Un nume precum webeste ușor de reutilizat; un ID este un identificator exact atunci când trebuie să distingi containerele. Poți verifica câmpurile afișate de docker ps / docker container ls .

Ieșirea terminalului de la docker ps -a afișează un container care rulează numit web și ID-ul său scurt de container.
Folosește numele sau ID-ul containerului afișat prin docker ps -a.

2. Copiați un fișier de pe computer în container

Executați docker cppe mașina ale cărei fișiere doriți să le copiați. De exemplu, dintr-un folder de proiect care conține report.csv, copiați-l în /tmpinteriorul containerului numit web:

docker cp ./report.csv web:/tmp/report.csv

Înlocuiți ./report.csvcu calea fișierului local, webcu numele sau ID-ul containerului și /tmp/report.csvcu calea de destinație din interiorul containerului. Căile containerelor sunt interpretate din directorul rădăcină al containerului, deci bara oblică inițială este opțională. Dacă destinația denumește un director existent, Docker plasează fișierul în acesta folosind numele fișierului sursă.

Comandă terminal care copiază fișierul report.csv local în containerul web de la adresa /tmp/report.csv.
Această comandă copiază un fișier gazdă în container.

Docker copiază directoarele recursiv. Dacă /etc/app/există deja, această comandă plasează configîn interiorul acestuia:

docker cp ./config web:/etc/app/

Pentru a copia doar conținutul fișierului configîn /etc/app/, includeți /.la sfârșitul căii sursă:

Comandă terminal care copiază conținutul directorului de configurare local în /etc/app în interiorul containerului web.
Sufixul /.înseamnă copierea conținutului directorului, în loc să imbricarea directorului sursă.
docker cp ./config/. web:/etc/app/

Docker nu creează directoare părinte lipsă. Creați mai întâi părintele destinației. Pentru a crea un folder lipsă într-un container care rulează, executați docker exec web mkdir -p /etc/app, apoi copiați fișierele. docker execnecesită un container care rulează; docker cpnu o face.

3. Copiați un fișier din container pe computer

Inversați ordinea dintre sursă și destinație pentru a recupera un fișier. Creați mai întâi folderul de destinație local, apoi copiați un fișier jurnal din container:

mkdir -p ./backup
docker cp web:/var/log/app.log ./backup/
Comandă terminal care preia fișierul app.log din /var/log din containerul web într-un director local de rezervă.
Folderul de destinație local ar trebui să existe înainte de a fi copiat în acesta.

Puteți recupera un director în același mod. Adăugați /.la calea sursă a containerului pentru a copia conținutul său direct într-un director local existent:

docker cp web:/var/log/app/. ./backup/

Docker poate copia fișiere dintr-un container oprit, ceea ce este util pentru colectarea jurnalelor sau a configurației după ce un proces se încheie.

Utilizarea Docker Compose

Dacă proiectul tău folosește Compose, folosește numele serviciului cu docker compose cpîn loc să cauți un ID de container. De exemplu, copiază un fișier local într-un serviciu numit web:

docker compose cp ./report.csv web:/tmp/report.csv

Pentru a copia în cealaltă direcție, inversați căile:

docker compose cp web:/var/log/app.log ./backup/

Consultați referința oficială Docker compose cp pentru opțiuni precum selectarea unei replici atunci când un serviciu are mai multe containere.

Permisiuni și stocare persistentă

În mod implicit, fișierele copiate într-un container sunt deținute de utilizatorul său root și de grupul principal; fișierele copiate pe computer sunt deținute de utilizatorul care rulează Docker. Permisiunile sunt păstrate acolo unde este posibil. Folosește-l -apentru a păstra UID-ul și GID-ul sursei. Dacă o aplicație nu poate citi un fișier, verifică destinația și proprietatea acestuia, în loc să se acorde containerului privilegii.

Fișierele din stratul inscriptibil al unui container sunt eliminate odată cu containerul. Pentru datele care trebuie să persiste, utilizați un volum Docker sau o montare bind. Volumele sunt potrivite pentru datele persistente ale containerelor; montarea bind permite gazdei și containerului să acceseze aceleași fișiere. Dacă copiați pe o cale acoperită de o montare, modificați datele montate. Verificați mai întâi destinația. Consultați îndrumările Docker despre volume și montarea bind .

Depanare rapidă

  • „Nu există un astfel de container”: rulați docker ps -ași verificați numele sau ID-ul containerului.
  • „Nu există un astfel de fișier sau director”: verificați calea sursă și asigurați-vă că există directorul părinte al destinației. Căile containerelor încep de la /.
  • Folderul a ajuns cu un nivel mai adânc decât era de așteptat: folosește caracterul final /.pentru a copia doar conținutul directorului.
  • Permisiune refuzată: verificați dacă contul dvs. poate utiliza Docker și dacă utilizatorul aplicației poate citi sau scrie în destinație. Pe Linux, utilizați sudonumai dacă politica de acces Docker a sistemului dvs. o impune.
  • Fișierele dispar după curățare: salvați datele importante într-un volum sau o montare bind, nu doar în stratul inscriptibil al containerului.

Lasă un comentariu

Cum se scanează coduri QR pe ​​un desktop Linux

Cum se scanează coduri QR pe ​​un desktop Linux

Scanați coduri QR pe ​​Linux cu CoBang folosind o cameră web sau un fișier imagine. Consultați opțiunile de instalare, pașii de configurare și remedierile pentru accesul la camera Flatpak.

Cum se modifică setările camerei web pe Linux cu Cameractrls

Cum se modifică setările camerei web pe Linux cu Cameractrls

Schimbați setările camerei web pe Linux cu Cameractrls: reglați expunerea, culoarea, reducerea pâlpâirii și alte controale acceptate, apoi verificați modurile video compatibile.

Cum se instalează PHPStorm pe Linux: Toolbox, Tar.gz, Snap și AUR

Cum se instalează PHPStorm pe Linux: Toolbox, Tar.gz, Snap și AUR

Instalați PhpStorm pe Linux cu JetBrains Toolbox sau arhiva independentă tar.gz, plus opțiunile Snap și Arch AUR. Java este deja inclus.

Cum se configurează panouri duale pe XFCE 4

Cum se configurează panouri duale pe XFCE 4

Creați un panou XFCE 4 separat pentru fiecare afișaj, atribuiți al doilea panou ieșirii corecte, poziționați-l și dimensionați-l și adăugați lansatoarele și elementele de stare de care aveți nevoie.

Cum se instalează Cisco Packet Tracer pe Linux

Cum se instalează Cisco Packet Tracer pe Linux

Descărcați Cisco Packet Tracer 9.0.1 pentru Ubuntu pe 64 de biți, instalați pachetul DEB cu APT, acceptați licența în Terminal și conectați-vă pentru a începe un laborator.

Cum se face o copie de rezervă a unui CD-ROM ca fișier ISO pe Linux

Cum se face o copie de rezervă a unui CD-ROM ca fișier ISO pe Linux

Creați un fișier ISO CD-ROM pe Linux cu GNOME Disks sau dd. Identificați unitatea optică, monitorizați copia, verificați imaginea și aflați când un disc deteriorat sau audio necesită un alt instrument.

Cum să decupezi o imagine pe Linux cu GIMP

Cum să decupezi o imagine pe Linux cu GIMP

Eliminați fundalul unei fotografii pe Linux cu GIMP: trasați un subiect, ștergeți fundalul selectat, păstrați transparența și exportați un fișier PNG reutilizabil.

Descărcați FlightGear gratuit: Ghid oficial de instalare

Descărcați FlightGear gratuit: Ghid oficial de instalare

Descarcă FlightGear gratuit de pe site-ul oficial. Compară pachetele Windows, macOS și Linux, instalează fișierele de date și începe primul tău zbor.

Aplicația desktop Google Tasks: Cum se utilizează pe computer

Aplicația desktop Google Tasks: Cum se utilizează pe computer

Deschide Google Tasks într-un browser, adaugă o comandă rapidă pentru Chrome sau o lansare în stilul aplicației și gestionează activitățile de făcut în avans prin Calendar și Gmail.

OKSampler: Un sampler muzical gratuit și simplu pentru ritmuri de claviatură

OKSampler: Un sampler muzical gratuit și simplu pentru ritmuri de claviatură

OKSampler mapează clipuri MP3 pe tastele tastaturii și poate reda audio în buclă. Află ce face software-ul gratuit vechi, unde se termină funcțiile sale vechi și ce trebuie să verifici înainte de descărcare.