Ú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:
- Ubuntu 18.04 Server: Můžete snadno vytvořit nový server CloudSigma s obrazem Ubuntu 18.04 podle našeho užitečného návodu.
- Docker – Můžete nainstalovat Docker pomocí našeho návodu, jak nastavit Docker na Ubuntu a seznámit se s ním.
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:
|
1 |
docker run --name=nginx -d -v ~/logs:/var/log/nginx -p 5000:80 nginx |
Zde jsou podrobnější informace o tomto příkazu:
--name=nginxdává kontejneru název pro snadnou referenci.-dargument odpojí proces a spustí jej na pozadí.-v hostPath:containerPathmapuje cestu hostitele a cestu kontejneru pro připojení svazku.-p hostPort:containerPortargument mapuje port kontejneru na port hostitele.nginxna konci řádku je název obrazu, který by měl být použit ke spuštění kontejneru.
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:
|
1 |
http://serverIP:5000/ |

V adresáři ~/logs uvidíte soubory access.log a error.log. Protokoly si můžete prohlédnout pomocí příkazu cat:
|
1 |
cat access.log |
|
1 2 3 |
Výstup: xx.xxx.xxx.xxx - - [17/Apr/2021:19:25:05 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/xx.xxx.xxx.xxx Safari/537.36" "-" xx.xxx.xxx.xxx - - [17/Apr/2021:19:25:05 +0000] "GET /favicon.ico HTTP/1.1" 404 556 "http://xx.xxx.xxx.xxx:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/xx.xxx.xxx.xxx Safari/537.36" "-" |
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:
- How to install & operate Docker on Ubuntu in the public cloud
- Instalace a nastavení Dockeru na CentOS 7
- Vyčištění prostředků Dockeru – obrazů, kontejnerů a svazků
- Jak spustit Docker na CloudSigma (s CloudInit) Aktualizováno
Příjemnou práci!
Komentáře
Zatím žádné komentáře. Buďte první.