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 varēsim redzēt, kā to izdarīt.
Zemāk esošie komandu piemēri 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: Lokālais resursdators -> Konteiners
docker cp <ceļš uz failu uz resursdatora> containerid:<ceļš uz failu konteinerī>
Piemērs: Konteiners -> Lokālais resursdators
docker cp containerid:<ceļš uz failu uz resursdatora> <ceļš uz failu uz resursdatora>
Apskatīsim to darbībā ar vienkārša piemēra palīdzību, izmantojot 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ē nginx.conf konfigurācijas fails, 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 varam modificēt un pēc tam atkārtoti ielādēt.
Kā nokopēt failu uz konteineri.
Pieņemsim, ka tagad mums ir jākopē modificētais nginx.conf fails atpakaļ uz konteineri. To varam izdarīt ar šādu 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 saturu:
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.