GNU/Linux >> Znalost Linux >  >> Panels >> Docker

Pochopení svazků Docker

Soubory (a další data) uložené v kontejneru Docker nezůstanou zachovány, pokud je kontejner odstraněn. Chcete-li to překonat, Docker svazky a svázat připojení může být použito. Tato příručka pojednává o použití svazků Docker jako způsobu ukládání trvalých dat. Představte si svazky jako externí pevný disk; pokud je interní pevný disk vymazán, externí pevný disk si stále uchová svá vlastní data. Svazky jsou uloženy na hostiteli a jsou nezávislé na jakémkoli kontejneru nebo obrázku. Podle potřeby je lze připojit k různým kontejnerům, a protože jsou svazky odděleny od obrazu, nezvětšují velikost obrazu.

Než začnete

  1. Pokud jste tak ještě neučinili, vytvořte si účet Linode a Compute Instance. Podívejte se na naše příručky Začínáme s Linode a Vytvoření výpočetní instance.

  2. Při aktualizaci systému postupujte podle našeho průvodce nastavením a zabezpečením výpočetní instance. Můžete také chtít nastavit časové pásmo, nakonfigurovat název hostitele, vytvořit omezený uživatelský účet a posílit přístup SSH.

  3. Nainstalujte Docker do svého systému.

  4. Tato příručka předpokládá, že vám vyhovuje používání příkazového řádku systému Linux. Viz Používání terminálu.

  5. Tato příručka předpokládá, že máte základní znalosti o Dockeru. Kromě toho byste již měli mít na svém serveru nainstalovaný Docker a nasazený obraz Dockeru. Viz Úvod do Dockeru.

Vytvoření svazku dockeru

Chcete-li začít porozumět svazkům Docker Volumes, budete potřebovat svazek, na kterém budete pracovat.

  1. Přihlaste se ke svému Linode (nebo jinému linuxovému serveru) pomocí buď SSH nebo Lish.

  2. Vytvořte svazek zadáním následujícího příkazu, kterým nahradíte example_volume se štítkem pro váš svazek.

    docker volume create example_volume
    
  3. Ověřte, zda byl svazek vytvořen.

    docker volume list
    

    Výstup by měl vypadat takto:

    [[email protected] ~]$ docker volume list
    DRIVER    VOLUME NAME
    local     example_volume
    [[email protected] ~]$

Kontrola svazku dockeru

Pokud se chcete podívat na další podrobnosti o svazku, můžete použít docker volume inspect příkaz:

docker volume inspect example_volume

Výstup by měl být podobný následujícímu:

[[email protected] ~]$ docker volume inspect example_volume
[
    {
        "CreatedAt": "2021-05-19T15:27:27Z",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/example_volume/_data",
        "Name": "example_volume",
        "Options": {},
        "Scope": "local"
    }
]
[[email protected] ~]$

Připojení svazku dockeru ke kontejneru

Aby data kontejneru zůstala zachována, musíte mít připojený svazek Docker pomocí --mount flag v docker run příkaz. Nahraďte [volume_name] s názvem vašeho svazku [cesta] s absolutní cestou, ke které chcete svazek v rámci kontejneru připojit, a [docker_image] s názvem vašeho obrázku.

docker run --mount source=[volume_name],destination=[path] [docker_image]

Jako příklad následující příkaz připojí svazek s názvem example_volume na cestu /example_volume uvnitř kontejneru pomocí ubuntu obrázek.

docker run -it --name=example --mount source=example_volume,destination=/example_volume ubuntu

Tento příkaz spustí bitovou kopii, připojí svazek a přihlásí uživatele jako root k obrazu Ubuntu. Jakmile jste jako root, můžete ověřit, že je „example_volume“ připojen pouze pomocí ls . Výstup toho všeho by měl vypadat nějak takto:

[[email protected] ~]$ docker run -it --name=example --mount source=example_volume,destination=/example_volume ubuntu
[email protected]:/# ls
bin   dev  example_volume  lib    lib64   media  opt   root  sbin  sys  usr
boot  etc  home            lib32  libx32  mnt    proc  run   srv   tmp  var
[email protected]:/#

Kopírování a sdílení souborů mezi kontejnery

Docker Volumes také umožňuje sdílení mezi kontejnery.

  1. Připojte svazek podle pokynů v části Připevnění svazku dockeru ke kontejneru. Zde je příklad použitý dříve:

    docker run -it --name=example --mount source=example_volume,destination=/example_volume ubuntu
    
  2. Změňte adresář na example_data adresář.

    cd example_data
    
  3. Vytvořte testovací soubor ve svazku zadáním následujícího touch příkaz.

    touch example_file.txt
    
  4. Poté opusťte kontejner.

    exit
    
  5. Nyní spusťte další bitovou kopii dockeru se stejným připojeným svazkem. debian obrázek je použit v příkladu níže.

    docker run -it --name=example_2 --mount source=example_volume,destination=/example_volume debian
    
  6. V novém kontejneru (nazývaném „example_2“, pokud používáte příkaz podobný tomu výše uvedenému) kontejneru přejděte do adresáře svazku.

     cd example_volume
    
  7. Zadejte ls k zobrazení souboru.

    ls
    

Připojení adresáře z vašeho Linode do kontejneru

Místo vytváření nového svazku můžete také připojit adresář z vašeho Linode (nebo jiného systému) do kontejneru Docker. Toho se dosáhne prostřednictvím připojení a je užitečné, když chcete ukládat a přistupovat k souborům kontejneru přímo ze systému. V porovnání se svazky mají připojení připojení omezenou funkčnost.

  1. Přihlaste se ke svému Linode (nebo jinému linuxovému serveru) pomocí buď SSH nebo Lish.

  2. Ke spuštění Dockeru použijte následující příkaz, který nahradí [místní-adresář] s absolutní cestou k adresáři ve vašem Linode, který chcete připojit (použijte $(pwd) pro připojení aktuálního adresáře). Poté nahraďte [adresář připojení] s absolutní cestou ve vašem kontejneru, kde chcete získat přístup k místním souborům, a nahradit [image] s obrazem Docker, který chcete použít.

    docker run --rm -it -v [local-directory]:[mount-directory] [image]
    
  3. Jste automaticky přihlášeni do kontejneru. Přejděte do adresáře pro připojení a zobrazte soubory.

    ls
    

    Měli byste vidět všechny soubory, které jste uložili v místním adresáři.

Další čtení

V Docker Volumes je toho mnohem víc, než se zde můžeme zabývat, a každý případ použití bude jiný. Dvě skvělá místa, kde se o tom můžete dozvědět více, jsou na samotném webu Docker’s Docs:

  • Použijte svazky v Docker Docs

  • Odstraňování problémů s chybami svazku v Docker Docs

Další informace

Další informace o tomto tématu můžete získat v následujících zdrojích. Přestože jsou poskytovány v naději, že budou užitečné, vezměte prosím na vědomí, že nemůžeme ručit za přesnost nebo aktuálnost externě hostovaných materiálů.

  • Používejte svazky v Docker Docs
  • Odstraňování problémů s chybami svazku v Docker Docs

Docker
  1. Jak sdílet data mezi kontejnery Docker na Ubuntu 22.04

  2. Úvod do Dockeru

  3. Vysvětlení výstupu příkazu „docker stats“.

  1. Vytváření logických svazků v Linuxu pomocí LVM

  2. Rozumíte volnému místu / svazkům na Ubuntu?

  3. Docker v Dockeru nemůže připojit svazek

  1. Přístavní dělník

  2. Pochopení vlastnictví souborů uživatele v dockeru:jak se vyhnout změně oprávnění propojených svazků

  3. Jediný souborový svazek připojený jako adresář v Dockeru