Zpět na blog

Jak sdílet data mezi Docker kontejnerem a hostitelem

Jak sdílet data mezi Docker kontejnerem a hostitelem

Úvod

Obecně platí, že kontejnery Docker běží pouze po určitou dobu – po dobu, kterou trvá spuštění příkazu. K datům, která jsou k dispozici uvnitř kontejneru, lze přistupovat pouze zevnitř kontejneru během jeho běhu.

Docker svazky lze použít pro snadný přístup k souborům a jejich dlouhodobější ukládání. Pokud máte například webový server Nginx a chcete ukládat protokoly pro audity, můžete použít Docker svazek k ukládání protokolů z kontejneru do hostitelského stroje.

V tomto návodu se naučíte, jak sdílet data mezi vnitřkem kontejneru Docker a hostitelským strojem. 

Požadavky

Pro tento návod budete potřebovat následující požadavky:

Krok 1 – Připojení svazku typu Bind Mount

Můžete vytvořit adresář s názvem logs v domovském adresáři aktuálního uživatele a připojit jej pomocí bind-mount k /var/log/nginx v kontejneru Nginx pomocí následujícího příkazu:

Zde jsou podrobnější informace o tomto příkazu:

  • --name=nginx dává kontejneru název pro snadnou referenci.
  • -d argument odpojí proces a spustí jej na pozadí.
  • -v hostPath:containerPath mapuje cestu hostitele a cestu kontejneru pro připojení svazku.
  • -p hostPort:containerPort argument mapuje port kontejneru na port hostitele.
  • nginx na konci řádku je název obrazu, který by měl být použit ke spuštění kontejneru.
Poznámka: Vždy použijte / nebo ~/ pro spuštění hostPath, jinak argument -v považuje cestu za název svazku a nepřipojí jej.

Krok 2 – Přístup k datům na hostiteli

Nyní máte na svém serveru spuštěný kontejner Nginx a port 5000 vašeho serveru se mapuje na port 80 Nginx. Port můžete otevřít ve webovém prohlížeči pomocí následující URL adresy:

nginx homepage

V adresáři ~/logs uvidíte soubory access.log a error.log. Protokoly si můžete prohlédnout pomocí příkazu cat:

Můžete také zkontrolovat adresář s protokoly ~/logs na svém hostitelském stroji a najít soubor s protokoly Nginx. Navíc, pokud provedete jakékoli změny ve složce logs folder, they would also reflect in the container’s /var/log/nginx folder as well.

Závěr

V tomto návodu jste se naučili, jak sdílet data mezi vnitřkem kontejneru Docker a hostitelským strojem. To je nezbytné ve vývojových prostředích, kde je analýza protokolů nutností pro ladění.

Další zdroje o Dockeru na našem blogu, naleznete zde:

Příjemnou práci!

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev je kreativní designér ve společnosti CloudSigma, který se zaměřuje na konzistentní firemní identitu prostřednictvím tradičních i inovativních marketingových kanálů. Je zdatný v propojování umělecké vize se strategickým marketingem za účelem vytváření působivých příběhů značky.

Komentáře

Zatím žádné komentáře. Buďte první.