Kot verjetno veste, obstaja več vrst virtualizacije, ena od njih je virtualizacija na ravni operacijskega sistema. Eden najvidnejših projektov na tem področju je Docker, skupaj z drugimi odprtokodnimi projekti, kot so OpenVZ, LXC/LXD, Linux-VServer itd., ali lastniška programska oprema Virtuozzo. Če poznate to področje ali redno berete takšne bloge, že poznate projekt, katerega logotip je kit (od tod tudi naslov za tiste, ki ga ne poznate), in ste zagotovo opazili, kako sta se njegova medijska prisotnost in zanimanje zanj v zadnjih letih eksponentno povečala.
Te nove tehnologije so sedanjost in prihodnost, še posebej z eksplozivno rastjo storitev v oblaku , o kateri smo že tolikokrat govorili. Docker, med mnogimi drugimi odprtokodnimi in brezplačnimi projekti, omogoča to širitev in ogromne možnosti, ki jih zahtevamo od oblaka. Kaj pa je Docker? Kaj je vsebnik? Kako deluje?
Docker in zabojniki:

Čeprav je odgovor nekoliko bolj zapleten in bi zahteval več člankov, ga bom poskušal povzeti. Če pa želite izvedeti več o tem fantastičnem projektu, obstaja nekaj odličnih knjig, kot je tista Alberta Gonzáleza, trenutnega svetovalca za oblak pri Red Hatu. Gre za praktičen vodnik, ki ga lahko po dostopni ceni kupite tako na Amazonu kot na Agapei . V redu, poglejmo, kaj je Docker.
Vsi vemo, da so kontejnerji postali močno orodje v Linuxu, ki ga je mogoče implementirati in upravljati s programsko opremo Docker. Kontejnerji so preprosto izolirane "škatle", ki vsebujejo le bistvene elemente za zagon določenega programa ali aplikacije. Predstavljajte si jih kot lahke virtualne stroje, namesto kot velike, virtualizacijo intenzivne virtualne stroje, ki se uporabljajo pri polni virtualizaciji. To zmanjšanje se odraža v nižjih režijskih stroških.
Kontejnerji ponujajo lahko zasnovo, prenosljivost, samozadostnost in prilagodljivost, ki jo razvijalci zelo iščejo. Vse to zahvaljujoč LXC, našemu najljubšemu jedru Linuxa, in samemu projektu Docker z njegovimi kontejnerji, slikami in repozitoriji. Te prednosti so privedle do njegovega uspeha, kar dokazuje vključenost industrijskih velikanov, kot so Google, Red Hat, IBM in Microsoft, pa tudi njegova široka uporaba in pozitiven sprejem v velikih podjetjih in storitvah v oblaku, ki jih vsi uporabljamo vsak dan (AWS, Digital Ocean itd.).
Po korakih namestite Docker:

Za namestitev Dockerja imate več možnosti , od pridobitve tarballa z izvorno kodo in njegovega prevajanja do pridobivanja binarnih datotek iz različnih repozitorijev in njihovega upravljanja z upravitelji paketov vaše distribucije (openSUSE, Ubuntu, Debian, CentOS, Fedora itd.). Binarni paketi so morda bolj priročni, vendar bom, da ne bi bilo preveč dolgo, razložil bolj neposredno in univerzalno metodo, ki deluje na kateri koli distribuciji:
sudo curl -fsSL https://get.docker.com/ | sh
Tako preprosto je. Zdaj imamo demon in odjemalca ; slednji bo komuniciral z Dockerjevim demonom in nam omogočil vse, kar ta programska oprema ponuja. Vendar je treba še nekaj storiti: zagnati storitev, torej inicializirati Dockerjev demon. Za systemd lahko storite naslednje:
sudo systemctl enable docker sudo systemctl start docker
Če je šlo vse po načrtih, bi moralo biti zdaj vse aktivno . To lahko preverite z:
sudo systemctl status docker
Zdaj ga lahko začnemo uporabljati ...
Prvi koraki: ustvarjanje vsebnika
Kot veste, je vsebnik paket z vsem, kar je potrebno za delovanje ene ali več aplikacij; podoben je virtualnemu stroju, vendar lažji, ker se za izvajanje zanaša na gostitelja. Da vsebnik deluje, mora imeti potrebne knjižnice za izvajanje, pa tudi določene odvisnosti, kot so nekatera orodja operacijskega sistema. Seveda je še ena potrebna komponenta izvajalno okolje, ki vključuje na primer interpreterje za interpretirane jezike, JVM, kodne datoteke ali binarne datoteke in tako naprej.
Za navigacijo po okolju boste uporabili več osnovnih Dockerjevih ukazov ; teh je kar nekaj, vključno z info, insert, kill, stop, start, build, ps itd. Če si jih želite ogledati vse in kaj vsak od njih počne, preprosto zaženite:
docker
Za več informacij si lahko ogledate uradno dokumentacijo.
Kako lahko ustvarite vsebnik z Dockerjem ? No, zdaj pa si poglejmo primer. Vsebnik bomo ustvarili z Ubuntujem, za kar bomo uporabili ukaz `run`, ki omogoča ustvarjanje in zagon vsebnikov (več informacij: `run -h` ):
docker run -i -t ubuntu /bin/echo Prueba contenedor
To bo uporabilo lokalno sliko, če jo že imamo, ali pa jo preneslo, če je ne najde. Prav tako bo ustvarilo vsebnik , dodelilo prostor za nov datotečni sistem in ga priklopilo. Seveda bo dodelilo omrežni vmesnik za komunikacijo med gostom in gostiteljem. Ko bo končano, bo prikazalo sporočilo odmeva z besedno zvezo » Test container «, ki smo jo vnesli.
Vse slike, ki jih imate, si lahko ogledate z:
docker images
In za začetek lahko uporabite ID vsebnika z:
docker start -a <pon-la-ID-del-container>
Če jih želite ustaviti, lahko namesto »start« uporabite »stop«:
docker stop <pon-la-ID-del-container>
In to je le najnujnejše v Dockerju. Upam, da vam je pomagalo pri začetku in prvih korakih, saj vam lahko odpre svet možnosti. Kot lahko vidite, gre za zelo široko temo, ki jo lahko podrobneje raziščete s to vadnico ali z nakupom dodatnih knjig, kot je tista, omenjena v prvih odstavkih, ki jo priporočam zaradi jasnih in praktičnih razlag. Ne pozabite pustiti svojih komentarjev …
