A Docker Cp használata fájlok másolásához a gazdagép és a tárolók között - CloudSavvy IT
Webügynökség » Digitális hírek » A Docker Cp használata fájlok másolásához a gazdagép és a tárolók között -

A Docker Cp használata fájlok másolásához a gazdagép és a tárolók között -

Szükséges fájlokat bevinni a Docker tárolóba vagy onnan? Az docker cp A parancs lehetővé teszi a gazdagép és a tároló fájlrendszerek közötti másolást, hogy konfigurációs adatokat adhasson hozzá, biztonsági másolatot készítsen és visszaállítsa a meglévő adatokat.

Alapszintaktika

docker cp a forrás és a cél elérési útját fogadja el két érvként:

docker cp example.txt my-container: /example.txt

itt example.txt ide másolja a munkakönyvtárat /example.txt a my-container tartály. Megfordíthatja a két argumentumot a másoláshoz /example.txt ki a tartályból és a munkakönyvtárba.

A tároló útvonalára vonatkozó argumentumot egy tárolóazonosítónak vagy névnek kell megelőznie, majd kettőspont (:). Megtalálhatja a futó tároló azonosítóját vagy nevét docker ps.

minden docker cp A parancsnak szüksége van egy helyi fájlrendszer elérési útjára és egy tároló útvonalára - nem másolhat közvetlenül két tároló között. Ha szükséges, használjon többlépéses eljárást, először másoljon a forrás tárolóból a fájlrendszerbe, majd az új helyi útvonalról a céltartályba.

Teljes könyvtárak másolása

docker cp rekurzívan másolhatja a könyvtárakat is:

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

Docker mindent átmásol ide /home/demo/website és vigye át /var/www/html.

Másolási viselkedés

Fájl másolásakor a Docker új fájlt hoz létre a célállomáson, ha az még nem létezik. A meglévő fájlok felülíródnak az új tartalommal. Ha a cél egy könyvtár, akkor a fájl a forrásfájl nevével másolódik oda. Kivételt képez, ha a megadott cél a -val végződik /, könyvtárat jelöl, de az elérési út még nem létezik. Ebben az esetben hiba keletkezik.

A folyamat kissé bonyolultabb a könyvtári másolatoknál. Új címtár jön létre a célállomáson a forráskönyvtár tartalmával, ha a célútvonal még nem létezik. Ha létezik, a viselkedés eltér attól függően, hogy a /. komponens az útvonalon.

  • /. jelen van - A forrás könyvtár átmásolódik a meglévő célkönyvtárba.
  • /. nincs jelen - A tartalom a forráskönyvtárból a célhelyre másolódik.

A finom megkülönböztetés határozza meg, hogy a célhelyen belül létrejön -e új alkönyvtár.

Rendelési korlátozások

Neve ellenére, docker cp nem a teljes megvalósítása cp shell parancs. Az cp zászlók nem támogatottak, kivéve -a et -L:

  • -a - Archiválási mód, amely megőrzi a felhasználói és csoportadatokat a másolt fájlokban.
  • -L - Kövesse a forráscímtár szimbolikus linkjeit a linkcélok tartalmának másolásához, nem pedig magukhoz a linkekhez.

Ha fejlettebb használati esetekre van szükség, ahol szelektív másolásra van szükség, akkor más megközelítést kell alkalmaznia.

Fájlok másolásához használjon linktartókat

A Docker kötetek egy másik módot is kínálnak a fájlok tárolók és a gazdagép közötti áthelyezésére. Ha egy helyi könyvtárat egy tárolóhoz köt, akkor hozzáférhet a tartalmához a gazda fájlrendszeréből, így nincs szükség a használatára docker cp.

docker futtatás -v / example / host / directory: / container / path my -image: latest

A tartalma /example/host/directory elérési útja a tároló fájlrendszerébe van szerelve a címen /container/path. Ezekkel a fájlokkal a Docker -en kívül is ismerkedhet olyan ismerős eszközökkel, mint a cp, rsyncés a grafikus fájlok böngészője.

Ez a technika csak akkor hasznos, ha egyetlen tárolókönyvtárral dolgozik. Nem működik jól, ha tetszőleges helyről másol, mert előre tudnia kell, hogy mely útvonalakat fogja használni a tároló létrehozásakor.

Óvakodnia kell a fájlrendszer -engedélyektől is: a tárolóban létrehozott fájlok általában a tulajdonosok root. Ez bonyolult forgatókönyveket hozhat létre a gazdagépen, ahol nem tud szerkeszteni vagy törölni fájlokat a hivatkozott könyvtárban. Használja a chown parancsot a gazdagépen és a tároló belsejében, hogy szükség esetén a környezettől függően váltson tulajdonost.

Mit szólsz COPY a Dockerfiles -ben?

docker cp néha összetéveszthető a COPY utasításokat a Dockerfiles fájlban. Fontos felismerni, hogy ez a két funkció nagyon eltérő használati eseteket szolgál.

COPY nem használható fájlok áthelyezésére a gazdagép és a futó tároló között. Ez a fájlok behelyezésére szolgál képek az építési folyamat során:

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

Itt a webhely forráskódját egy építmény részeként képbe másolják. Ez egy egyedülálló folyamat. Minden, a képről indított tároló tartalmazza a webhely forrását, ahogyan az futáskor volt docker build.

docker cp lehetővé teszi, hogy a tároló futása után lecserélje ezt a forráskódot egy újabb verzióra. COPY utasításokat használnak arra, hogy a fájlokat statikus kép részévé tegyék; cp a megrendelések közvetlenül kölcsönhatásba lépnek a konténerekkel.

Mikor kell fájlokat másolni a Docker segítségével?

A fájlok kézi másolása a gazdagépről a Docker -tárolóba, vagy fordítva, viszonylag ritka jelenség. A képek önellátóak, ezért mindent tartalmazniuk kell a példány elindításához. A konfigurációt általában környezeti változók segítségével kezelik.

Az olyan tárolóknak, amelyeknek folyamatosan tárolniuk kell az adatokat, Docker -köteteket kell használniuk. A kötetek lehetővé teszik az adatok túlélését minden tárolóban, így nincs rá szükség docker cp mielőtt lecserél egy példányt. A biztonsági mentések végrehajtásakor másolja ki a köteteket a gazdagépből, ahelyett, hogy eltávolítaná a fájlokat a tárolókból.

docker cp különösen hasznos tárolók hibakeresésekor vagy fejlesztői környezetben végzett munka során. Néha manuálisan kell beadnia egy ideiglenes konfigurációs fájlt, vagy kibontania egy eltemetett naplót. Használata docker cp gyorsabb és kényelmesebb, mint a teljes kép újratelepítése minden alkalommal, amikor megváltoztatja a kódot.

Mindig ne feledje, hogy a másolt fájlok -ban a konténerek csak addig maradnak fenn, amíg a tartály életben van. Ha egy másik tárolót ugyanabból a képből indít, akkor tiszta lap lesz, mínusz a fájlokkal, amelyeket hozzáadott docker cp.

Sommaire

docker cp lehetővé teszi a fájlok áthelyezését a gazdagép és a Docker -tárolók között. Fájlokkal és könyvtárakkal működik, de hiányzik a legtöbb fejlett shell -szolgáltatás cp rendelés.

Rendszeres használata docker cp potenciális eltérést jelez a konténerek bevált módszereitől. Bölcs dolog a fejlesztés praktikus eszközeként kezelni, nem pedig a konténerekkel való munka szerves részeként. A fájlok hosszú távú fennmaradását kötetekkel kell megvalósítani, mivel ezek a Docker ökoszisztéma első osztályú összetevői.

★ ★ ★ ★ ★