PIESLĒGTIES
    opened image

    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.