Egyéb informatika

Cikkek informatika témában, amik más kategóriákba nem fértek bele

Nginx és docker-gen futtatása külön konténerben

Borítókép címmel és hálózati csatlakozó képével PowerPoint-tal generálva.

A múlt alkalommal megmutattam, hogyan lehet úgy Docker konténerekkel konfigurálni weboldalakat, hogy előttük van egy NginX proxy, ami a különböző domainekre érkező kéréseket továbbítja különböző konténerek felé. Ezt viszont eddig egy darab konténerrel oldottuk meg, ami tartalmazta egyszerre a "docker-gen"-t, ami generálta a konfigurációs fájlt és az NginX szervert is. A "docker-gen"-nek viszont fel kell csatoltunk a Docker socket fájlt, hogy el tudja érni a Docker API-t, amiből le tud kérni információkat, hogy le tudja generálni a konfigurációs fájlt. Ilyenkor viszont, ha valaki mégis csak be tud jutni az NginX szerveren keresztül a konténerbe, akkor gyakorlatilag minden Docker konténerünkhöz hozzáfér. Ezt elkerülendő szét fogjuk választani a "docke-gen"-t az NginX szervertől két külön konténerbe, és ezek után már csak a "docker-gen" fogja tudni elérni a Docker API-t.

Megosztás/Mentés

WSL2-es gépben futó konténerek elérése LAN hálózaton mobiltelefonról

villanykörtében villámlás a pixabay.com-ról PIRO4D felhasználótól

A hosszú tartalmak után végre lehet szusszanni egyet a következő villámtippel. Ha Windows 10-ben szeretnél Linuxos Docker konténert futtatni, akkor a Windows Subsystem For Linux is egy jó megoldás lehet, de az ilyen gépekben kiengedett portokat nem lehet elérni a LAN hálózaton. Vagy mégis? A cikkből és a mellékelt videóból kkiderül.

Megosztás/Mentés

Virtuális hosztok Dockerbarát módon NginX reverse proxy-val

proxy network felirat a pixabay.com-ról kevinandthepup felhasználótól

Minden eddigi megközelítésünk lényege az egyszerűség volt, hogy kis lépésekben haladjunk előre. Eljött az a pont, amikor már elhagyjuk a kényelmes hoszt network-öt és a konténerek saját IP-t kapnak. Ezzel viszont bonyolódik a több weboldal elérése, amennyiben minden weboldalt külön konténerben indítunk. Bár a HTTPD-vel is konfiguráltunk proxy-t, jellemzően nem azt használjuk erre a célra, hanem például NginX-et vagy HAProxy-t. A következőkben az NginX proxy konfigurálását mutatom be dinamikusan generált konfigurációs fájllal, hiszen nem tudjuk előre a konténerek IP címeit, ráadásul meg is változhatnak időnként. Innentől kezdve minden konténert, beleértve az előző alkalmakkor konfigurált fájlfeltöltőt és letöltőt, illetve alapértelmezett weboldalt is ugyanazon a proxy-n keresztül fogjuk elérni. Bár élesben a fájlfeltöltő mögötti PHP sem a parancssori PHP-ból indított webszerverrel fog működni, ezt most hagyjuk, ahogy van és csak a proxy-ra koncentrálunk.

Megosztás/Mentés

Fájlok megosztása konténerek között volume-on keresztül Docker Compose-zal

SHARE felirat szókirakóban a pixabay.com-ról heinzremyschindler felhasználótól

Az előző két cikkben szó volt egyszerű konténer indításáról felcsatolt mappákkal, fájlokkal és Docker image készítéséről. A Docker Compose-zal a felcsatolt mappát is a "volumes" blokkban definiáltuk, de valójában volume-ként inkább arra hivatkozunk, amikor a Dockerre bízzuk a mappa létrehozását, és nem is feltétlenül csak lokális fájlrendszerben lehet gondolkodni. A cikkben és a mellékelt videóban viszont csak lokális volume-okról lesz szó az előző részekben elkészült webszervert kiegészítve egy fájlfeltöltő alkalmazással, ám továbbra is a hoszt rendszer hálózatán futtatva a szolgáltatásokat. Ezért egy rettentő egyszerű HTTPD Proxy-t is konfigurálnunk kell, amivel még egy lépéssel közelebb kerülünk ahhoz a szemlélethez, amit előbb-utóbb mindenkinek meg kell ismernie, aki egyszerre több webes szolgáltatással dolgozik konténerekbe szervezve.

Megosztás/Mentés

A legegyszerűbb HTTPD Docker image elkészítése

LEGO keret kép felhasználásával a pixabay.com-ról AnnaliseArt felhasználótól docker image build felirat.

Folytatjuk az utunk az előző részben indított HTTPD Docker konténer után, de már saját Docker image-et is készítünk. Ez az image még egy nagyon egyszerű megoldás lesz a koncepció megértéséhez, ami még nem a végleges, éles környezetre szánt verzió, de innentől nagyon jó úton fogunk haladni afelé. Ez nem jelenti azt, hogy ne lehetne élesben is alkalmazni a leírtakat, de a legtöbb esetben ez még nem elég. Ha viszont egy statikus oldalad van, vagy egy állapotmentes alkalmazásod (pl. webes számológép, konvertáló alkalmazás), esetleg egy demo alkalmazásod, ami nem igényel konfigurációt sem, akkor már ezzel is el tudod készíteni.

Megosztás/Mentés

HTTPD virtuális hosztok Docker konténerben

Internet kép a pixabay.com-ról TheDigitalArtist felhasználótól.

Mutattam már az LXC konténereket, amik nagyon jól használhatók virtuális gépek helyett, de nem ez ami folyamatosan és elkerülhetetlenül szembejön ma már nem csak GitHub-on, de szakmai társalgásokban is. Sokkal inkább a Docker. Nem újdonság már, az I.T. szigeten is több oldalnyi cikket találhatsz a témáról. Ha még mindig nem vetted rá magad, hogy megtanuld, akkor itt a remek alkalom. Talán már megpróbálkoztál vele, de bonyolultnak érezted, nem működött. Könnyebb lehet először a hagyományoshoz hasonló módon elindítani egy programot a konténerben, majd haladni egyre konténerbarátabb megoldások felé, ám ezzel egyre inkább eltávolodni a korábban megszokottól. Ebben a cikkben és a mellékelt videóban azt mutatom be, hogyan konfigurálnánk egy Apache HTTPD webszervert több weboldalhoz konténerben futtatva, mégis egy még ismerősebb megoldással, virtuális hosztokkal.

Megosztás/Mentés

Így kerüld el a WSL 2 és Docker network IP tartományának ütközését

Piros és sárga UTP kábel pixabay.com-ról, fotofixautomat-tól

A WSL2-ről már többször volt szó, mivel lehetőséget ad Windowson a Linuxos Docker konténerek erőforrástakarékosabb használatára. A Docker telepítésével viszont még nem végeztünk a konfigurációval, mert sajnos, hacsak nem Docker desktoppal telepíted a Dockert, a konténerek hálózata ütközhet a WSL 2-es gép aktuális hálózati beállításával. Erre ugyan nincs tökéletes megoldás egyelőre, én viszont találtam egy kerülőutat, amit most meg is osztok veled.

Megosztás/Mentés

Mi a különbség konténer és virtuális gép között és mi az az LXD?

Gyakorlati példákon keresztül bemutatom, hogyan lehet konténereket létrehozni és mi a különbség konténer és virtuális gép között. Mivel szeretném, ha mindenki számára nyilvánvaló lenne, hogy nem csak Docker konténerek léteznek, ezért az LXD-t fogom telepíteni, amivel LXC konténerket és virtuális gépeket is lehet kezelni.

Megosztás/Mentés

WSL export/import és állapotok, alapértelmezett felhasználó beállításával

A korábbi WSL-es Docker cikk folytatásaként most a frissen telepített gépek elmentésével folytatom, így bármikor vissza lehet állni egy korábbi verzióra. Beállítom az alapértelmezett felhasználót is, amit az exportáláskor elfelejt a gép, illetve végig mutatom azt is, milyen állapotai lehetnek a WSl gépeknek. Ha mentést nem is szeretnél a gépeidről, de ugyanabból a disztribúcióból többet is szeretnél telepíteni különböző célokra, akkor is érdemes tovább olvasni. A videón pedig gyakorlatban is követheted a beállításokat.

Megosztás/Mentés

Docker 20.10 telepítés Windows 10-ben WSL 2-vel

Bár a WSL 2 telepítéséhez nincs szükség Hyper-V -re, mint a Docker Desktophoz, de a VirtualMachinePlatform engedélyezése is befolyásolja a többi virtualizáló szoftver működését, mint a VirtualBox vagy a VMWare Workstation. VirtualBox esetén például le kellhet tiltani a VT-x/AMD-V opciót, vagy a következő üzenet fogadhat:

Failed to open a session for the virtual machine ubuntu-dev
Cannot enable nested VT-x/AMD-V without nested paging and unrestricted guest execution

Megosztás/Mentés