Konec nameščanja!
Katere so najbolj priljubljene slike aplikacij za kontejnersko okolje Docker?
Ali ni nemara virtualizacijsko okolje Docker bolj samemu sebi namen, saj lahko (strežniške) aplikacije v Linux namestimo tudi neposredno? Ni. Pomislite koliko dodatnega dela je potrebno za izpolnjevanje predpogojev, za predhodno nameščanje programskih knjižnic in podpornih aplikacij. Pa tudi – premislite, kako jih boste odstranili, ko jih ne boste več potrebovali. Z Dockerjem poganjamo natanko tiste vsebnike aplikacij, ki jih dejansko potrebujemo, nepotrebne pa enostavno začasno zaustavimo ali odstranimo.
Prenos in namestitev Docker Desktopa v katerikoli računalnik z Windows 11 je enostavno, a deluje le, če je na voljo strojna podpora za virtualizacijo.
Kako deluje?
Virtualizacijsko okolje Docker že dolgo poenostavlja nameščanje aplikacij v skoraj katerikoli novejši računalnik s skoraj katerimkoli operacijskim sistemom. Aplikacijo z interneta prenesemo kot sliko, ki vsebuje tako aplikacijo kot podporne datoteke, zato je ni treba nameščati. Izvesti moramo le osnovne nastavitve in vzpostaviti omrežne povezave.
Kontekst delovanja in nastavitve posamezne instance aplikacije so shranjeni v vsebniku Docker (Docker container), zato lahko ob pomoči ene slike aplikacije zaženemo poljubno število njenih kopij, ne da bi za to potrebovali bistveno več prostora na podatkovnem nosilcu gostiteljskega strežnika. To je povsem drugače kot v Microsoftovem Hyper-V, kjer ima vsak navidezni računalnik kopijo vse programske opreme in operacijskega sistema.
V istem gostiteljskem računalniku z Dockerjem z lahkoto vzpostavimo informacijski sistem, za katerega bi sicer potrebovali več fizičnih strežnikov; še posebej takrat, ko aplikacije zahtevajo različne operacijske sisteme (denimo ena Debian Linux, druga pa Red Hat Linux).
Kako namestimo Docker
Spletni portal docker.com je prava zakladnica informacij z uporabniku prijazno razlago namestitve in uporabe Dockerja. Namestimo ga lahko v operacijske sisteme Linux, Max OS in Windows, pri čemer med različicami Linuxa podpira Ubuntu, Debian, Red Hat in Fedoro. Nekoliko prirejena podrazličica Debiana je tudi Raspberry Pi OS, ki ga lahko poganjamo v priljubljenih istoimenskih računalnikih.
Namestitev Docker Desktop je uporabniku prijazna in celovita in vključuje tako Docker Engine kot tudi vtičnike in grafične vmesnike za udobno upravljanje Dockerja iz okenskega okolja. Deluje v računalnikih Windows in Max OS z arhitekturami x86, x64 in ARM64 pod pogojem, da ti podpirajo strojno virtualizacijo. Raspberry Pi 4 in 5 žal nista med njimi, zato pa lahko Docker Desktop namestijo tudi uporabniki notesnikov s procesorji Snapdragon z arhitekturo ARM64. V Windows 10 in 11 je dodatni predpogoj še nameščena podpora za virtualizacijo: Hyper-V ali WSL2.
V ostale računalnike lahko namestimo zgolj programski paket Docker Engine, ki ga upravljamo iz ukazne vrstice. Razvijajo tudi Docker Desktop za računalnike z Linuxom, a ta za zdaj poskusno deluje le na arhitekturi x64.
Portainer in Dockge namesto Docker Desktopa
Čeprav je uporabnikom Windows in Mas OS enostavnost nameščanja aplikacijskih slik ter zaganjanja, nastavljanja in uporabe ter zaustavljanja njihovih vsebnikov ob pomoči vseobsežnega Docker Desktopa skoraj samoumevna, lahko grafični upravljavski vmesnik v obliki slike aplikacije portainer/prtainer-ce s spletne strani portainer.io enostavno namestimo tudi v Linux z nameščenim Docker Engine.
Da namestitev Portainerja ne bi bila prezahtevna, lahko namestitveno skripto z interneta prenesemo z ukazom wget ali curl ali pa jo ročno skopiramo s spletne strani get.docker.com kar v poljubno prazno datoteko, ki jo nato z ukazom chmod 777 »ime datoteke« spremenimo v izvedljivo datoteko in zaženemo iz ukazne vrstice.
Portainer da upravljanju Dockerja v Linuxu povsem nove dimenzije.
Portainer lahko iz ukazne vrstice namestimo tudi brez skripte, in sicer z ukazoma
docker volume create portainer_data in
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:2.21.1.
Povejmo še, da možnost restart=always ne zažene samodejno Docker Engina vsakokrat, ko računalnik ponovno zaženemo, ampak nato zažene tudi Portainer.
Portainer uporabljamo prek spletnega naslova 172.17.0.2:9000, ki je dostopen le prek lokalnega omrežja. Nameščanje slik aplikacij in upravljanje vsebnikov je podobno enostavno kot v Docker Desktopu. Namesto grafičnega vmesnika Docker Composerja, ki je del Docker Desktopa, lahko s Portainterjem namestimo še sliko aplikacije Dockge, ki ni nič drugega kot grafični vmesnik za Docker Composer.
Portainer – dodeljevanje naslovov in vrat TCP/IP
Dockerjevi vsebniki delujejo v lastnih kontekstih, kar pomeni da so navzven vidni le izrecno izpostavljeni načini komunikacije (npr. TCP na vratih 8080) in komunikacijski prehodi (preusmeritev vrat 8080 na notranjem naslovu IP na vrata 80 na zunanjem naslovu IP), ki jih določimo pri zagonu. Pri določanju komunikacijskih prehodov je navadno prednastavljen povratni gostiteljski naslov našega računalnika (localhost oziroma 127.0.0.1), lahko pa namesto tega sami določimo drug naslov v krajevnem omrežju ali internetu.
Portainer vsakemu novemu vsebniku dodeli prosta vrata iz skupine 172.17.0.0/16, vidne le v lokalnih omrežjih, v katerih je poleg prehoda 172.17.0.1 prostih še okoli 65.000 naslovov. Upravljavski portal Portainerja je dostopen na naslovu 172.17.0.2:9000, nadaljnje naslove IP pa dodeljuje vsebnikom ob njihovem zagonu. Prvi vsebnik dobi naslov 172.17.0.3 itn. Ko vsebnik zaustavimo, se njegov naslov IP sprosti, zato ni nujno, da ob ponovnem zagonu dobi isti naslov, razen ob uporabi dodatnih nastavitev. Namesto start in stop lahko uporabljamo tudi ukaza pause in resume, ki ohranita že dodeljena naslova IP/vrata.
Galerije slik in videov
O galerijah domačih slik in videov smo pisal v julijsko-avgustovskem Monitorju, tokrat poglejmo, katere od aplikacijskih strežnikov lahko poganjamo kot Dockerjev vsebnik.
PhotoPrism, Piwigo in Lychee preprosto namestimo in zaženemo tako, da v grafični uporabniški vmesnik Portainerja vnesemo ime aplikacijske slike (npr. za PhotoPrism: photoprism/photoprism). Lastniki slik aplikacij lahko imena slik sčasoma zamenjajo ali pa jih odstranijo z interneta (navadno zaradi poslovnih interesov), zato se ob morebitni napaki pri nameščanju izplača poguglati, ali za isto aplikacijo obstajajo tudi druge slike.
Galerijo Photoprism lahko ob pomoči Dockerja namestimo tudi v domači računalnik.
Po namestitvi katerekoli od galerij moramo poiskati njen spletni uporabniški vmesnik. To storimo prek grafičnega vmesnika s pregledom nastavitev ali pa namesto tega v ukaznem oknu (npr. oknu CMD v Windows) izvedemo ukaz docker ps, ki izpiše vse aktivne vsebnike, pri čemer v izpisu podatkov vsebnika (navadno) najdemo tudi vsa vrata, prek katerih je ta dostopen našemu računalniku, ki v vlogi gostiteljskega strežnika poganja Docker. Če jih ni ne v aplikaciji ne v izpisu aktivnih vsebnikov, pomaga le še brskanje po navodilih za namestitev.
Galerije niso le spletni portali, do katerih enostavno in udobno dostopamo s sodobnim spletnim brskalnikom, ampak tudi velike podatkovne zbirke fotografij in videov. Nekatere imajo vgrajene tudi umetnointeligenčne metode za lažje iskanje in samodejno označevanje shranjenega gradiva, na primer samodejno odkrivanje lokacije posnetka, iskanje podobnih fotografij ali štetje oseb na fotografiji.
Galerije brez težav poganjamo tako na PC kot na Raspberry Pi 5 s štirimi ali z osmimi gigabajti glavnega pomnilnika, pri čemer namestitev slike obsežnejše aplikacije lahko zahteva tudi do nekaj 10 gigabajtov prostora na podatkovnem pogonu, vendar bomo pri prenosu oziroma kopiranju slik in še posebej videov v galerijo porabili še veliko več prostora. Čeprav se z lastno galerijo izognemo plačevanju mesečne naročnine, si za hrambo gradiva vendarle ni slabo omisliti polja podatkovnih pogonov (npr. RAID 5), s katerim ob morebitni odpovedi enega od pogonov ne izgubimo shranjenih slik in videov.
100 najbolj priljubljenih
Slike priljubljenih strežniških aplikacij za Docker na spletu ni vedno lahko najti, a si pri tem pomagamo z izbori in lestvicami priljubljenosti, med katerimi je tudi seznam 100 najbolj priljubljenih vsebnikov za domači strežnik, ki ga najdemo na spletni strani www.bitdoze.com/docker-containers-home-server. Tu boste našli tudi povezave na spletne strani z natančnimi navodili za namestitev, pri čemer je večina aplikacij na voljo tudi za neposredno namestitev in je namestitev v Docker zgolj ena od možnosti. Natančnejša navodila za namestitev najdemo tudi na spletnem portalu hub.docker.com/r/linuxserver/»ime slike aplikacije«.
Namizje z bližnjicami
Portal priljubljenega spletnega iskalnika Google je hkrati tudi namizje z bližnjicami, ki jih lahko urejamo in dodajamo tudi sami. Podobno funkcionalnost omogočajo tudi drugi iskalniki, toda če iskalnik zamenjamo ali se odjavimo iz svojega uporabniškega računa, se bližnjice spremenijo ali izginejo.
Heimdall: Dodajanje dodajanje bližnjic do aplikacij in storitev na namizje.
Temu se lahko izognemo, če v svoj računalnik naložimo ustrezno spletno aplikacijo, kot so Heimdall, Organizr in Homer. Vse omogočajo ustvarjanje bližnjic do aplikacij in storitev ter poljubno oblikovanje namizja. Tako je dovolj namestiti eno izmed njih in na učenje spletnih naslovov na pamet lahko pozabimo. Resda tudi spletni brskalniki omogočajo zaznamke, a ti so ob začetku krmarjenja po internetu veliko manj priročni.
IPTV, filmi, domači videi in fotografije
Sprejemniki IPTV ponudnikov internetnih storitev že dolgo niso več edini način, kako enostavno poiskati tokove IPTV in gledati neštete TV-programe ali filme. Nadomestimo jih lahko tudi z namenskimi aplikacijami v svojem računalniku. A kaj, ko je mnoge težko namestiti in nastaviti, saj je treba najprej izpolniti predpogoje. Obenem pogosto želimo tovrstne aplikacije zaustaviti, ko računalnik uporabljamo za domačo pisarno ali igranje iger, da je na voljo več glavnega pomnilnika. Z Dockerjem je vse to enostavno!
Preizkusili smo Plex in Jellyfin. Prednost Plexa je povezava s spletnimi strežniki, kjer najdemo naslove postaj IPTV in tudi filme. Za možnost ogleda nekaterih vsebin moramo plačevati mesečno naročnino. Po drugi strani Plex omogoča deljenje doma ustvarjenih fotografskih in video knjižnic.
Plex: Velika izbira programov IPTV in filmov.
Jellyfin je po funkcionalnostih podoben Plexu, vendar je v celoti brezplačen in odprtokoden. Žal si povezave do ponudnikov IPTV in morebitne naročnine urejamo sami. Delimo lahko tudi lastne knjižnice videov in fotografij.
Strežniki za igre
Igranje računalniških iger s prijatelji zahteva povezovalno infrastrukturo oziroma namenski strežnik določene računalniške igre, ki ga namestimo v enega od (domačih) računalnikov, da se lahko povežejo vsi soigralci. Nekateri igričarski strežniki omejujejo največje število igralcev, pri drugih lahko to sami nastavimo, pri tretjih pa je neomejeno.
Večina strežnikov za igre zahteva gostiteljski računalnik z arhitekturo x64, nekateri, kot je Minecraft server, pa delujejo tudi na arhitekturi ARM64. Namestitev moramo pogosto izvesti iz ukazne vrstice ali Docker Composerja in ne iz Docker Desktopa ali Portainerja, saj je treba podati veliko zagonskih parametrov, obenem pa vzpostaviti ustrezno imeniško strukturo na gostiteljskem strežniku.
Domači pomočnik
Home assistant pogosto omenjajo skupaj z Raspberry Pi in drugimi majhnimi računalniki na eni ploščici tiskanega vezja, a ga lahko uporabljamo v skoraj kateremkoli računalniku. Omogoča ustvarjanje delovnih tokov in urnikov za upravljanje doma, obenem pa zna sproti pridobivati vremenske in druge podatke iz interneta, saj v začetnih nastavitvah izberemo tudi svojo geografsko lokacijo.
Ob prvem zagonu sam poišče združljive naprave, med katerimi so tudi tiste za predvajanje zvoka oziroma kar stereo izhod zvočne kartice gostiteljskega računalnika, in naprave bluetooth. Poslušalci spletnih radiev bodo veseli tudi obširnega seznama spletnih radijskih postaj, potem ko izberejo želeno državo. Res pa je, da nekatere postaje zaradi geografskih omejitev niso dostopne.
Home assistant: Izbira domače lokacije, ki omogoča sprejemanje aktualnih vremenskih podatkov iz interneta.
Od drugih funkcionalnosti, ki bi nam v prihodnosti utegnile koristiti, je tudi kalkulator za sprotno izračunavanje stroška porabljene električne energije. A je treba takoj priznati, da ni kos kompleksnemu sistemu zaračunavanja porabe in omrežnine, ki ga prinaša nova slovenska zakonodaja.
Kaj pa naprave? Home assistant kot naprave prepozna tako spletne storitve, kot so Amazonove AWS, ki so na voljo prek Amazonovega spletnega oblaka, kakor tudi fizične naprave interneta stvari (IoT), v katere namestimo združljivo programsko opremo, denimo priljubljene razvojne module ESP32 z vgrajenim Wi-Fi, v katere vgradimo knjižnico ESPHome, ki doma izdelani aplikaciji (npr. za merjenje sobne temperature) omogoči komunikacijo s Home assistantom.
Osebne finance
Vsebniki Firefly III, GnuCash in HomeBank pomagajo pri obvladovanju osebnih financ, saj omogočajo pripravo urnika transakcij; še posebej ponovljivih, med katere sodi mesečno plačevanje računov za porabljeno električno energijo. Omogočajo tudi pripravo finančnih poročil z grafi. Za tiste, ki pogosto potujejo, je odlično, da lahko finance vodijo v različnih valutah.
Res pa je, da ponudniki aplikacij trenutno ponujajo predvsem podporo za sorazmerno enostavno neposredno namestitev v računalnik z Windows, Mac OS ali Linuxom, medtem ko se zdi, da so Docker nekoliko zanemarili, saj postopku namestitve slik aplikacij za začetnika še zdaleč niso trivialni.
Elektronske knjige
E-papir tudi za večino računalniških laikov že dolgo ni nekaj povsem novega. Uporabljajo ga tablice za branje e-knjig, v katere je prednaložena ustrezna programska oprema. Čeprav Unbooqity ni edina strežniška aplikacija, ki omogoča branje e-knjig, je ena tistih z več funkcionalnostmi, kot so podpora za standarda OPDS in Cosmic ter možnost upravljanja uporabnikov in spletni vmesnik.
Ubooquity: Domača e-knjižnica.
Namestitev slike aplikacije linuxserver/ubooquity:latest je trivialna, a žal to ne velja za izvedbo začetnih nastavitev. Nato potrebujemo le še e-knjige, pri čemer si lahko pomagamo z navodili za uporabo različnih e-knjižnic, s katerimi si omogočimo dostop do njihovih spletnih e-knjižnih polic. Podrobna navodila najdemo na spletni strani: hub.docker.com/r/linuxserver/unbooquity.
Umetna inteligenca in veliki jezikovni modeli (LLM)
Če želite svoj računalnik spremeniti v »kopilota«, ki odgovarja na vsakovrstna vprašanja, si lahko učinkovito pomagate s slikami aplikacij, ki znajo poganjati različne jezikovne in druge umetnointeligenčne modele, ki jih lahko pridobimo z interneta. Res pa je, da moramo tovrstni »luksuz« plačati z več 10 gigabajti porabljenega prostora na podatkovnem pogonu. Obenem tudi ne moremo računati na sprotne posodobitve znanja. Bistvena prednost je, da vsa vprašanja in odgovori nanje ostanejo v našem računalniku in ne odjadrajo v oblak.
Pred namestitvijo katerega od modelov LLM se izplača preveriti predpogoje. Lotili smo se namestitve Ollame in spletnega grafičnega vmesnika OpenWebUI – torej dveh slik, katerih vsebnike je treba ob vzpostavitvi delovanja medsebojno povezati. To ni trivialno in zahteva kar nekaj brskanja po spletu in iskanja nasvetov. A vaja dela mojstra, zato ni obupajte!
Dobro je tudi, da lahko nepravilno nastavljeni vsebnik »ubijemo« (Dockerjev ukaz kill) in se nato kompleksnega zaporedja izvedbe nastavitev lotimo ponovno iz t. i. čiste kopije. Seveda moramo paziti, da tega ne storimo pomotoma, kar se nam lahko ob nepazljivosti v Porteinerju ali Docker Desktopu kaj hitro zgodi.
Spremljanje delovanja računalnika
Čeprav imajo sodobni operacijski sistemi vgrajena orodja, s katerimi spremljamo njihovo delovanje, denimo Task Manager v Windows, lahko za lepši grafični prikaz in prikaz več podrobnosti namestimo dodatna orodja, da lahko kazalnike delovanja računalnika spremljamo tudi prek spletnih brskalnikov v drugih računalnikih v lokalnem omrežju.
Orodje Netdata je preprosto namestiti in dobro deluje. V odlični grafiki predstavi delovanje vseh delov računalnika, kar obsega podatke s tipal, denimo temperaturo procesorja in hitrost njegovega ventilatorja, kakor tudi zasedenost pomnilnika in trenutno zasedenost procesorja, pomnilnika in podatkovnih pogonov.
Netdata: Nadzorna plošča domačega računalnika.
Čeprav se zdi Grafana na prvi pogled podobna orodju Netdata, je to orodje veliko primernejše za sistemske skrbnike kot navadne uporabnike, saj moramo tako vire podatkov kot tudi način njihovega prikaza izbrati sami. Viri podatkov niso le tipala računalnika in njegove glavne komponente, kot so procesor, pomnilnik, podatkovnih pogoni in omrežni komunikacijski vmesniki, temveč tudi strežniške aplikacije, denimo strežnik podatkovne zbirke. Iz grafikonov nato po lastnih željah sestavimo nadzorno ploščo.
Naj živi Docker!
Docker je odlično orodje za poganjanje strežniških aplikacij, vendar nekaterih izmed njih ni enostavno namestiti. Če moramo pred namestitvijo ali med njo izvesti še kopico ročnih operacij, to za začetnika ni enostavno. V članku smo zato omenili predvsem slike aplikacij, katerih vsebnike je dovolj enostavno namestiti in jih lahko uporablja vsakdo.
Omenimo še upravljalnike gesel, kot je PassBolt, v katere lahko ta varno shranjujemo, obenem pa nam jih ni treba pretipkavati, ko se prijavljamo na spletne strani.
Pi-hole, Unbound, Traefik, Nginx Proxy in Manager so strežniki za omrežne navdušence. Z njimi je resna uporaba vsebnikov hitrejša, enostavnejša, varnejša in preglednejša.
Med slikami strežniških aplikacij najdemo tudi take, s katerimi lahko vzpostavimo lastni spletni strežnik (npr. WordPress) ali pa uredimo dokumentacijo podjetja, omogočimo lažji dostop do nje in poenostavimo njeno posodabljanje (npr. Paperless-ng).
Nextcloud: Spletna pisarna na domačem strežniku.
Nekaj slik aplikacij je namenjenih tudi razvijalcem programske opreme, denimo GitLab in Jenkins, medtem ko so Nextcloud, Syncthingm, Seafile, ownCloud in Filebrowser spletni datotečni strežniki za delitev in sinhronizacijo datotek ter datotečnih imenikov med računalniki v lokalnem omrežju. Zanimive možnosti, predvsem za manjša podjetja, ponujajo tudi aplikacije za internetno telefonijo VOIP, kot sta Asteix in FreePBX.
Kaj pa varnost in zasebnost?
OpenVPN in WireGuard!
Pa naj še kdo reče, da z Dockerjem ni mogoče narediti (skoraj) vsega!