docker

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

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

Így telepíts Dockert Windows 10-re Hyper-V nélkül

Windows 10 laptop képe a pixabay.com-ról

Windows 10-ben a legegyszerűbben a Docker Desktop telepítésével futtathatsz Docker konténereket. Az előnye még, hogy nem csak Linux vagy Windows konténereket tudsz vele futtatni, hanem egyidőben mindkettőt. Bár egyszerre csak az egyiket támogatja, de a konténereid nem vesznek el, amikor a két mód között átváltasz, csak a docker parancs a kiválasztott módnak megfelelő docker démont fogja látni alapértelmezetten. Előfordulhat, hogy nem akarod engedélyezni a Hyper-V feature-t, de az alapértelmezett telepítés szerint az kötelező. Én viszont mutatok egy módszert ennek kikerülésére, persze ára is van. Ha nem szeretsz olvasni, azs em gond. Dőlj hátra és élvezd az oktatóvideót.

Megosztás/Mentés

Docker Hub letöltési korlát hatása a cégekre, ingyenes szolgáltatásokra

stop ábra a pixabay.com-ról

A 2020-as év sok területen hozott változást és úgy tűnik, a Docker sem maradt kivétel. Azon túl, hogy természetesen tovább fejlődött, néhány új szabály bevezetése miatt át kell kell gondolni a korábbi használati szokásokat. Az egyik nagy előny ugyanis az volt eddig, hogy bármilyen gépen is dolgoztam, ha volt internet hozzáférésem, le tudtam tölteni a szükséges Docker image-eket, fel tudtam telepíteni több gépre is egymás után a Docker Hub-ról letöltött programokat, törölni tudtam és újra el tudtam készíteni egy virtuális gépet, hogy egymás után többször is leteszteljek egy telepítést az alaprendszerből kiindulva. Ez viszont megváltozott, amit lehet kezelni, és sokaknak fel sem fog tűnni a változás, de lesznek sokan, illetve valószínűleg már vannak sokan, akiknek feltűnt és kénytelenek voltak változtatni a módszereiken.

Megosztás/Mentés

Távoli Docker démon elérése

Villanykörte ötletfelhőben. Fotó a pixabay.com-ról

A Docker fejlődése megállíthatatlan, persze az új feature-ök jelentősége olykor megkérdőjelezhető, de a szubjektív véleményem, hogy nagyon is jó irányba tartó. A 19.03-as verzióval megjelent a context, ami egyszerűbbé teszi a távoli Docker démonok elérését, ugyanakkor előtte sem volt lehetetlen. Tudtad-e, hogy már a 18.09-es verziótól van lehetőség akár távoli unix Docker sockethez is csatlakozni SSH-n keresztül pusztán a Docker kliens segítségével? Vagy talán nem is hiányzott, mert anélkül is meg lehet és meg lehetett oldani. Hogy pontosan miről is van szó, kiderül a cikkből.

Megosztás/Mentés

Speciális tesztkörnyezet, avagy SNMP a Dockerdőben

Nyomtató kép a pixabay.com-ról

Minden szoftvernek biztosítani kell egy tesztkörnyezetet. Ez néha nagyon egyszerű, néha pedig igazán elgondolkodtató. Mi van, ha a tesztelendő szoftvernek egy olyan eszközzel kell kommunikálnia, amit nem lehet minden sarkon beszerezni, ráadásul helyhez kötött, a fejlesztés viszont nem? Ebben a cikkben nyomtatókkal történő SNMP kommunikációról fogok mesélni Docker környezetben. Mivel tud segíteni és mi okoz némi fejtörést a konténerek világában.

Megosztás/Mentés

Composer helyes használata Dockerrel

composer logo a getcomposer.com-ról

A Composer a PHP függőségkezelője, ami szintén PHP nyelven lett megírva, és jellemzően egy composer.phar nevű fájl telepítésével használjuk a projekt gyökeréből vagy rendszermappából. Éles környezetben nem szükséges a webszerveren lennie, csak a függőségek letöltéséhez szükséges. De akkor miért is kérdés egyáltalán a Dockerrel használata? Ha tovább olvasod a cikket, hamarosan megtudod.

Megosztás/Mentés

PHP alkalmazás fejlesztése Docker konténerekkel

php elefánt kép pixabay.com-ról

Az előző részben megmutattam, hogyan lehet statikus tartalmakat, kliensoldali webes alkalmazásokat fejleszteni és közzétenni Docker konténerben, most viszont a szerveroldali programokon a sor. Ebben az esetben az komplikálja a feladatot, hogy már nem elég a kliensnek odaadni a programfájlokat, azokat szerveroldalon kell értelmezni. Ez persze nem feltétlen jelentene önmagában problémát, mivel az értelmező és a szerver lehet egy konténerben is. PHP alkalmazásnál viszont érdemes külön konténerben futtatni a PHP értelmezőt és a webszervert. Az alábbiakban ennek mikéntjéről fogok írni.

Megosztás/Mentés