opened image

Kā nokopēt datus no resursdatora uz Docker un no Docker uz resursdatoru

Kā mēs redzējām iepriekšējās rakstās, Docker var vienkāršot dažādu lietojumprogrammu izvietošanu un palaišanu.

Bet dažreiz ir nepieciešams pārsūtīt failus no resursdatora uz Docker konteineri un no konteineri uz resursdatoru.

Šajā rakstā mēs redzēsim, kā to izdarīt.

 


Zemāk esošās komandas paredz, ka jums jau ir instalēts Docker. Ja tā nav, jūs varat uzzināt, kā to izdarīt rakstos: "Kā instalēt Docker uz Centos 7" vai "Kā instalēt Docker uz Ubuntu 20.04".
 

Failu kopēšana no resursdatora uz Docker konteineri.


Lai kopētu uz Docker un no tā, izmantosim rīku docker cp.

Rīks docker cp kopē avota saturu uz galamērķi.

Jūs varat kopēt no konteineru failu sistēmas uz vietējo datoru vai otrādi, no vietējās failu sistēmas uz konteineri.


Piemērs: Vietējais resursdators -> Konteiners

docker cp <ceļš uz failu resursdatorā> containerid:<ceļš uz failu konteinerī>


Piemērs: Konteiners -> Vietējais resursdators

 

docker cp containerid:<ceļš uz failu resursdatorā> <ceļš uz failu resursdatorā>



Apskatīsim to darbībā, izmantojot vienkāršu piemēru ar Docker Nginx attēlu.

 

 

docker run -d --name nginx_copy nginx

 


kur:
nginx_copy - konteinera nosaukums (varat izmantot jebkuru)
nginx - Docker hub attēla nosaukums, ko izmantosim


Ja jums nav šī konteinera serverī, gaidiet, kamēr tas tiek lejupielādēts. 


 

Tagad ieejiet konteinerī, lai apskatītu/noskaidrotu, kur vai kādu failu kopēt.

 

 

docker exec -it nginx_copy /bin/bash

 


Tagad izvadiet terminālī mapi /etc/nginx

 

 

ls -la  /etc/nginx/

 


Piemēram, mums ir jākopē konfigurācijas fails nginx.conf, un mums ir zināms, ka tas atrodas ceļā /etc/nginx/nginx.conf. Ievadiet šo komandu:

 

 

docker cp nginx_copy:/etc/nginx/nginx.conf ~/nginx.conf

 


Kur:

nginx_copy - konteiners, no kura kopējam;
/etc/nginx/nginx.conf - ceļš uz failu, ko vēlamies kopēt;
~/nginx.conf - galamērķa vieta un faila nosaukums (varat norādīt citu faila nosaukumu)

Tagad apskatīsim rezultātu:

 

 

 

ls -la

 



Kā redzam, fails veiksmīgi nokopēts uz resursdatora. Tagad to varēsim modificēt un pēc tam atkārtoti ielādēt.

 

 

Kā nokopēt failu uz konteineri.


Pieņemsim, ka tagad mums ir jānokopē modificētais fails nginx.conf atpakaļ uz konteineri. To var izdarīt, izmantojot šo konstrukciju:

 

 

 

 

docker cp ~/nginx.conf nginx_copy:/etc/nginx/nginx.conf_cp

 


Ja viss ir ievadīts pareizi, mēs varēsim redzēt šo failu konteinerī.

Ieejiet konteinerī:

 

 

docker exec -it nginx_copy /bin/bash

 


Un izvadiet direktorijas /etc/nginx sarakstu:

 

 

ls -la

 



 

Kā redzam, jaunais fails ir nokopēts iekšā konteinerī.

Pēc tāda paša principa var pārvietot datus no konteineri uz resursdatoru un otrādi.

​​​​​​​Mēs iesakām apsvērt arī citus noderīgus rakstus: