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: