Kontejneri Reloaded

Izvornik: Containers Reloaded

Ja sam zauzet u posljednje vrijeme pokušava da biste saznali više o Docker. Nisam baš neki ljubitelj “aplikacije kontejnera” i dalje preferiraju punom zamahu “distro kontejner” kao da pružaju LXC (dobra) ili OpenVZ (bolji) … ali moram priznati da slike diska / slojeva koje Docker je zapravo funkcija svi vole … koji predviđa gotovo trenutnog stvaranja kontejner i start-up. Ako OpenVZ imao da, to bi bilo još više super.

OpenVZ svakako je učinio razvoj mnogo u proteklih nekoliko godina. Oni su shvatili da simfs jednostavno zar ne rezanje i uveo ploop skladištenje … i onda je to default. ploop je super. On pruža za instant snimke koja je stvarno zgodan za to zero-zastoje backup. Pitam se kako ploop razlikuje ovih dana iz qcow2? Pitam se koliko je teško bi bilo dodati disk raslojavanja funkcije poput Docker na OpenVZ sa ploop snimke?

Aplikacije Kontejneri In the Beginning

Ok, tako Docker je skinuta, ali ja stvarno ne mogu shvatiti zašto. Mislim Red Hat uveo OpenShift prije nekog vremena. Prvo je to bio uslugu, onda proizvod, a na kraju je open source proizvod koji možete razviti sami ako vam ne treba podrška. A prije par godina sam bio prisutan na OpenShift prezentaciju i tada je pružao “Gears”, koji su u osnovi chroot procese s prilagođenim SELinuxu politika nanosi … i upravljanje resursima cgroup? Nešto slično tome.Dok (ne-OpenVZ) kontejneri ne sadrže, sa SELinux dodao je, OpenShift prijenosa činilo se da dovoljno sigurnom.

OpenShift ponudio lako postavljanje preko neke git-based shema (ako se dobro sjećam) i gomilu prethodno upakovanih gomile, okviri, i aplikacije pod nazivom “patrone” koji ja vidim kao funkcionalno ekvivalent Docker registru .. To nije imala je slojeva disk slike i instant pokretanje Docker pa pretpostavljam da je bio minus.

Ovih dana valjda OpenShift će ili je prebačen na koristi Docker.

Docker Crawls prije nego se može Walk

Docker počela koristeći aufs ali to je out-of-stabla fajlsistema da se ne ide da ga u mainline. Srećom Red Hat pomogla prilagođavajući Docker za korištenje zasnovane na uređaj za mapiranje kontejner za skladištenje … i onda je dodao Btrfs-based kontejner za skladištenje. Ono što se kao zadani izgleda zavisi šta distribucija instalirate na Docker. Koji od ova tri je performantnija a koji (e) je sranje … jednom da zavisi od toga ko ste razgovarali i što je domaćin distribucija je.

Docker počela koristeći LXC. Nisam siguran što to znači točno. Svi znamo da je LXC “Linux native Kontejneri” ali LXC izgleda variraju ovisno o tome što kernel radite i šta distribucija koristite … i stanje userland paketa LXC.Docker opametio tamo i odlučio da više kontrole (i daje više konzistentnost) i stvorili svoju libcontainer.

Default umrežavanje Docker kontejnera čini pomalo neuredan. A kontejner dobiva privatne mreže adresu (ili preko DHCP ili ručno dodijeljen, uzmete), a zatim ako želite izložiti uslugu prema vanjskom svijetu morate kartu da na priključak glavnog. To znači da ako želite pokrenuti puno iste usluge … da ćeš raditi tako uglavnom na nestandardne luka … ili završiti postavljanje naprednije rješenje kao opterećenje balancer i / ili reverzni proxy .

Želite pokrenuti više od jedne aplikacije / usluga unutar vašeg Docker kontejnera? Sretno. Docker je zapravo dizajniran za jednu aplikaciju i kao rezultat toga DOCKER kontejner nema init sistem za sebe. Da, postoje različite rješenja za ovo. Napišite neki shell skripte da pokrene sve što vas zanima … koji je u osnovi kreiranje vlastitih geto init sistem. To mi se čini tako unatrag s obzirom na dobitke koje su napravili u posljednjih nekoliko godina, sa prekidačem na systemd … ali ljudi to rade. Postoji nešto što se zove nadzornik što mislim da je blagi korak od skriptu, ali ja ne znam puno o tome. Pretpostavljam da postoji i nekoliko drugih rješenja od treće strane.

Zbog složenosti umrežavanja i dizajn jedne aplikacije … i obzirom na činjenicu da je većina web-usluga ovih dana su zapravo kombinacija usluga koje su međusobno povezane, a jedan Docker kontejner neće ti puno. Morate napraviti dva ili tri ili više i onda ih povezati zajedno. Linkovi može biti privatna između kontejnera, ali ne zaboravite da razotkriju domaćinu luke (e) trebate da biste dobili vaše podatke na vanjskim svijetom.

Iako postoje načini (hack?) Koje čine Docker učiniti uporni podataka (kao što su mapiranje jedan ili više direktorija kao “volumena” u posudu ili radi “počiniti”), Docker stvarno čini više usmjerena prema ne-uporni ili bez državljanstva upotrebu.

Docker Spaghetti

Zbog svih tih složenosti, što ja vidim kao rezultat nad-pojednostavljene Docker dizajn, ima tonu third-party rješenja. Docker je pokušavao da previše riješiti neke od samih tih stvari. Neki od Docker novijih stvari su vidjeli neki (npr CoreOS) kao otmica originalnog platforme i kao rezultat toga … dodatni, trenutno nekompatibilne formate i alata kontejner su stvoreni. Čini se da je novi treće strane Docker rešavanje problema start-up pojavljuju tjedno.Mislim postoji tona dodataka … i ne mnogi od njih su dizajnirani da rade zajedno. To je nešto poput kršćanstva denominacija … uglavnom vjeruju iste stvari, ali postoje neke važne stvari se ne slažu o. :)

Primjena kontejneri su Real

Ok, pa sam ispuhom malo o Docker ali ja ću priznati da kontejneri aplikacije su korisne za neke ljude … one u “stoku” virtualizacije, a ne “pet” virtualizacije zvanog “flote computing”. To su ljudi radi velike web-usluga koje je potrebno desetine, stotine ili tisuće slučajeva iste stvari služi veliki broj klijenata. Ja sam samo jedan od onih ljudi tako jedan volim više tradicionalno pune distribucija stil kontejnera koje OpenVZ.

Rad na Fedora 22

Već sam blog o radu na svom Fedora 22 remix, ali sam isto napravila Fedora 22 OpenVZ OS predložak koji sam dostavio contrib. Da, to je pre-release, ali ja ću ažurirati ga s vremenom … i Fedora 22 je trebalo da bude objavljen sljedeći tjedan, osim ako postoje dodatne kašnjenja.

Kao i mnogi OpenVZ OS Obrasci moj doprinijeli Fedora 22 OS Template nema mnogo softvera koji je instaliran i je uglavnom za korištenje kao server. Za moju vlastitu upotrebu iako Dodao sam da to sa MATE radnoj površini, x2goserver, Firefox, LibreOffice, GIMP, Dia, Inkscape, Scribus, itd čini prilično zgodan još svjetlo desktop okruženje. Bilo je malo nezgodno za izgradnju jer dodavanja desktop okruženje će povući u NetworkManager koja će nadjačati ye ‘Ole usluga mreže i pauza u kontejneru na sljedeći kontejner početak. Dakle, iako je izgradnja “vzctl ući” je bio dužan pristup iz čvora OpenVZ domaćina. Uz pregršt systemctl onemogućiti / masku komande da je u jednom radnom stanju. Ne zaboravite da promijenite zadani ciljni natrag na više korisnika iz grafičkog … i da, možete isključiti displej menadžera, jer vam to ne treba jer x2go je metoda pristupa izbora.

BTW, bilo je libssh ažuriranje da probio x2go ali oni moraju imati taj fiksni RSN.

Višenamjenska OS Templates

Također sam odlučio da se igra sa LXC nekim na mom Fedora 22 fizičkih desktop. Našao sam recept libvirt-vezanih za LXC na Fedora. Iako je bilo malo datiran je to bilo od velike pomoći.

Yum-install-u-chroot način izgradnje kontejnera fajlsistem stvarno nije radio za mene. Pretpostavljam da nisam imao dovoljno kompletna lista paket ili možda neke stvari su se promijenile od Fedora 20. sam odlučio da ponovno svrha mog Fedora 22 OpenVZ OS Template. Izvađen sam ga u direktorij i zatim uredio nekoliko mreža Related files (/ etc / sysconfig / mreže, uklonjeni / etc / sysconfig / network-scripts / ifcfg-Venet *, i dodao ifcfg-eth0 datoteke). Također sam chroot’ed u direktorij i postavili root lozinku i stvorio korisnički račun koji sam dodao grupi točak za pristup sudo.

Nakon minutu ili tako za manje preinake (i nakon što je napustio chroot’ed okoliš) jesam komandu Virt-instalirati da stvori libvirt uspio LXC kontejner pomoću novog Fedora 22 direktorij / datotečni sustav … i bingo Bango koji su radili. Također je dodao neke GUI stvari i baš kao i kod OpenVZ sam morao da se onemogući NetworkManager ili ga slomio umrežavanje u kontejner. U svakom slučaju … radi se LXC kontejner je kao OpenVZ na glavni kernel … samo bez svih upravljanja resursima i zaštita na radu. Baby korake.

Kontejneri ode predaleko?

Dok lov na neke snimke na Docker sam naleteo RancherVM. Šta je to? Da citiramo iz njihov opis:

RancherVM je novi open source projekt od Rancher Labs, što ga čini jednostavnim pokrenuti KVM unutar Docker kontejner.

Ono što Heck? Pokrenite KVM VM unutar Docker kontejnera? Zašto bi neko to uradio? Pa, tako da možete ugraditi KVM VM disk slike unutar Docker slika … i lako rasporediti KVM VM (skoro) kao lako kao Docker kontejner.Takav me boli glava samo razmišljam o pokretanju Windows 7 desktop unutrašnjost Docker kontejnera … ali netko tamo se to radi. Jao!