Úvod
Vo všeobecnosti kontajnery Docker bežia len po určitú dobu – čas, ktorý trvá spustenie príkazu. K dátam, ktoré sú k dispozícii vo vnútri kontajnera, je možné pristupovať len z vnútra kontajnera počas jeho behu.
Docker zväzky sa môžu použiť na jednoduchý prístup k súborom a ich ukladanie na dlhšie obdobie. Ak máte napríklad webový server Nginx a chcete ukladať logy na účely auditu, môžete použiť Docker zväzok na uloženie logov z kontajnera do vášho hostiteľského počítača.
V tomto návode sa naučíte, ako zdieľať dáta medzi vnútrom Docker kontajnera a hostiteľským počítačom.
Požiadavky
Pre tento návod budete potrebovať nasledujúce požiadavky:
- Ubuntu 18.04 Server: Môžete jednoducho vytvoriť nový server CloudSigma s obrazom Ubuntu 18.04 podľa nášho užitočného návodu.
- Docker – Môžete nainštalovať Docker pomocou nášho návodu na nastavenie Dockeru na Ubuntu a oboznámiť sa s ním.
Krok 1 – Pripojenie zväzku (Bind Mount)
Môžete vytvoriť adresár s názvom logs v domovskom adresári vášho aktuálneho používateľa a pripojiť ho k /var/log/nginx v kontajneri Nginx pomocou nasledujúceho príkazu:
|
1 |
docker run --name=nginx -d -v ~/logs:/var/log/nginx -p 5000:80 nginx |
Tu sú podrobnejšie informácie o tomto príkaze:
--name=nginxpomenuje kontajner pre jednoduchú referenciu.-dargument odpojí proces a spustí ho na pozadí.-v hostPath:containerPathmapuje cestu hostiteľa a cestu kontajnera na pripojenie (bind mount).-p hostPort:containerPortargument mapuje port kontajnera na port hostiteľa.nginxna konci riadku je názov obrazu, ktorý by sa mal použiť na spustenie kontajnera.
Krok 2 – Prístup k dátam na hostiteľovi
Teraz máte na svojom serveri spustený kontajner Nginx a port 5000 vášho servera sa mapuje na port 80 Nginx. Port môžete otvoriť vo webovom prehliadači pomocou nasledujúcej URL adresy:
|
1 |
http://serverIP:5000/ |

V adresári ~/logs uvidíte súbory access.log a error.log. Logy si môžete pozrieť pomocou prí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 tiež skontrolovať adresár logov ~/logs na vašom hostiteľskom počítači a nájsť súbor s logmi Nginx. Navyše, ak vykonáte akékoľvek zmeny v priečinku logs , prejavia sa aj v priečinka kontajnera /var/log/nginx .
Záver
V tomto návode ste sa naučili, ako zdieľať dáta medzi vnútrom Docker kontajnera a hostiteľským počítačom. To je nevyhnutné vo vývojových prostrediach, kde je analýza logov nevyhnutná pre ladenie chýb.
Ďalšie zdroje o Dockeri na našom blogu, si môžete pozrieť nasledujúce:
- Ako nainštalovať & prevádzkovať Docker na Ubuntu vo verejnom cloude
- Inštalácia a nastavenie Dockeru na CentOS 7
- Vyčistenie prostriedkov Docker – obrazy, kontajnery a zväzky
- Ako spustiť Docker na CloudSigma (s CloudInit) Aktualizované
Príjemnú prácu s počítačom!
Komentáre
Zatiaľ žiadne komentáre. Buďte prvý.