Kako koristiti Docker Cp za kopiranje datoteka između hosta i spremnika - CloudSavvy IT
Web agencija » Digitalne vijesti » Kako koristiti Docker Cp za kopiranje datoteka između hosta i spremnika -

Kako koristiti Docker Cp za kopiranje datoteka između hosta i spremnika -

Trebate unositi datoteke u ili iz Docker spremnika? The docker cp Naredba vam omogućuje kopiranje između datotečnih sustava hosta i spremnika tako da možete dodati detalje konfiguracije, stvoriti sigurnosne kopije i vratiti postojeće podatke.

Osnovna sintaksa

docker cp prihvaća izvorne i odredišne ​​staze kao svoja dva argumenta:

docker cp example.txt moj spremnik: /example.txt

ovdje example.txt kopira vaš radni direktorij u /example.txt u my-container kontejner. Oba argumenta možete poništiti za kopiranje /example.txt iz spremnika i u vaš radni imenik.

Argumentu koji se odnosi na putanju spremnika mora prethoditi identifikator spremnika ili naziv iza kojeg slijedi dvotočka (:). ID ili naziv pokrenutog spremnika možete pronaći pomoću docker ps.

svaki docker cp Naredbi je potrebna lokalna staza datotečnog sustava i staza spremnika - ne možete kopirati izravno između dva spremnika. Koristite postupak u više koraka ako to trebate učiniti, prvo kopirajući iz izvornog spremnika u datotečni sustav, a zatim s novog lokalnog puta do ciljnog spremnika.

Kopiranje cijelih direktorija

docker cp također može rekurzivno kopirati direktorije:

docker cp / home / demo / website apache-container: / var / www / html /.

Docker će sve kopirati u /home/demo/website i prenijeti ga na /var/www/html.

Ponašanje kopiranja

Kad kopirate datoteku, Docker stvara novu datoteku na odredištu ako već ne postoji. Postojeće datoteke prepisuju se novim sadržajem. Kad je odredište direktorij, datoteka se tamo kopira pomoću naziva izvorne datoteke. Izuzetak je kada navedeno odredište završi s /, označavajući imenik, ali put već ne postoji. U ovom scenariju generirat će se pogreška.

Postupak je malo kompliciraniji za kopije direktorija. Na odredištu će se stvoriti novi direktorij sa sadržajem izvornog direktorija, ako odredišni put već ne postoji. Kad postoji, ponašanje se razlikuje ovisno o tome jeste li uključili a /. komponenta na putu.

  • /. je prisutan - Izvor imenik se kopira u postojeći odredišni direktorij.
  • /. nije prisutan - The sadržaj iz izvornog imenika kopira se na odredište.

Suptilna razlika diktira hoće li se unutar odredišta stvoriti novi poddirektorij.

Ograničenja narudžbe

Unatoč svom imenu, docker cp nije potpuna provedba cp naredba ljuske. The cp zastavice nisu podržane osim za -a et -L:

  • -a - Način arhiviranja koji čuva pojedinosti korisnika i grupe o kopiranim datotekama.
  • -L - Slijedite simbolične veze u izvornom direktoriju da biste kopirali sadržaj ciljeva veza, a ne same veze.

Za naprednije slučajeve uporabe u kojima je potrebno selektivno kopiranje, morat ćete koristiti drugačiji pristup.

Za povezivanje datoteka koristite nosače za povezivanje

Docker volumeni pružaju još jedan način za premještanje datoteka između spremnika i vašeg računala. Vezivanje lokalnog direktorija u spremnik omogućuje vam pristup njegovom sadržaju iz vašeg datotečnog sustava domaćina, eliminirajući potrebu za korištenjem docker cp.

docker pokrenite -v / example / host / direktorij: / spremnik / put moja -slika: najnoviji

Sadržaj /example/host/directory staze su montirane u datotečni sustav spremnika na /container/path. S tim datotekama možete komunicirati izvan Dockera koristeći poznate alate poput cp, rsynci preglednik grafičkih datoteka.

Ova je tehnika korisna samo kada radite s jednim direktorijem spremnika. Ne radi dobro pri kopiranju s proizvoljnih lokacija jer morate unaprijed znati koje ćete putove koristiti pri stvaranju spremnika.

Također biste trebali biti oprezni s dopuštenjima datotečnog sustava: datoteke stvorene u spremniku obično će biti u vlasništvu root. To može stvoriti teške scenarije na hostu u kojima ne možete uređivati ​​ili brisati datoteke unutar povezanog direktorija. Koristiti chown naredbu na hostu i unutar spremnika za promjenu vlasništva ovisno o okruženju ako je potrebno.

Što o tome COPY u Docker datotekama?

docker cp ponekad se može zamijeniti s COPY upute u Docker datotekama. Važno je priznati da ove dvije značajke služe vrlo različitim slučajevima uporabe.

COPY ne može se koristiti za premještanje datoteka između vašeg hosta i pokrenutog spremnika. Ovo služi za stavljanje datoteka slika tijekom procesa izgradnje:

COPY / home / me / my-website / var / www / html /.

Ovdje se izvorni kod web stranice kopira u sliku kao dio izrade. To je jedinstven proces. Svaki spremnik pokrenut sa slike uključivao bi izvor web stranice kakav je bio u vrijeme izvođenja docker build.

docker cp omogućuje vam da zamijenite ovaj izvorni kod novijom verzijom nakon što se izvrši spremnik. COPY upute se koriste kako bi datoteke postale dio statičke slike; cp narudžbe izravno komuniciraju s spremnicima.

Kada kopirati datoteke s Dockerom?

Ručno kopiranje datoteka s vašeg računala u Docker spremnik ili obrnuto trebala bi biti relativno rijetka pojava. Slike trebaju biti samodostatne pa bi trebale sadržavati sve što vam je potrebno za pokretanje instance. Konfiguracijom se obično upravlja putem varijabli okruženja.

Kontejneri koji trebaju stalno skladištiti podatke trebaju koristiti Docker volumene. Volumeni omogućuju da podaci prežive bilo koji spremnik, pa ne morate docker cp prije zamjene instance. Prilikom izvođenja sigurnosnih kopija kopirajte volumene s vašeg računala, umjesto da uklanjate datoteke iz spremnika.

docker cp osobito je korisno pri otklanjanju pogrešaka u spremnicima ili pri radu u razvojnom okruženju. Ponekad morate ručno ubaciti privremenu konfiguracijsku datoteku ili izvaditi zakopani dnevnik. Korištenje docker cp je brži i prikladniji od ponovne izgradnje cijele slike svaki put kada promijenite kôd.

Uvijek zapamtite da su kopirane datoteke u spremnici će trajati samo dok je spremnik živ. Pokretanjem drugog spremnika s iste slike dobit ćete čistu listu, umanjenu za datoteke koje ste dodali docker cp.

Sommaire

docker cp omogućuje vam premještanje datoteka između vašeg hosta i vaših Docker spremnika. Radi s datotekama i direktorijima, ali nema većinu naprednih značajki ljuske cp zapovjednik.

Redovita upotreba docker cp ukazuje na potencijalno odstupanje od najboljih praksi u kontejnerima. Mudro je to tretirati kao zgodan alat za razvoj, a ne kao sastavni dio rada s spremnicima. Dugoročnu postojanost datoteka trebalo bi implementirati s volumenima jer su oni prvoklasne komponente u Docker ekosustavu.

★ ★ ★ ★ ★