Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Microsoft en Docker kondigen Linux-containerondersteuning via LinuxKit aan

Door , 56 reacties, submitter: nickurt

Op het DockerCon-evenement heeft Docker LinuxKit aangekondigd, waarmee Linux-containers op verschillende platforms gebruikt kunnen worden. Microsoft kondigt aan daarvoor ondersteuning te bieden in Windows 10 en Windows Server.

Docker meldt dat het met LinuxKit mogelijk moet zijn om een Linux-distributie op platformen te draaien die niet standaard zijn voorzien van ondersteuning voor het OS, zoals Windows en macOS. Zo is de minimale grootte van een image 35MB en draaien alle systeemdiensten als containers, waardoor zij naar wens verwijderd of vervangen kunnen worden. Docker heeft de broncode van LinuxKit beschikbaar gesteld via GitHub. Alpine, de Linux-distributie die Docker gebruikt voor zijn officiële images, blijft volgens de onderneming bestaan.

In een eigen aankondiging schrijft Microsoft dat het Linux-containers ondersteunt in Windows Server door gebruik te maken van dezelfde isolatietechnieken als bij zijn Hyper-V-hypervisor. Daardoor kunnen Windows- en Linux-containers naast elkaar gedraaid worden, aldus het bedrijf. Deze functionaliteit moet beschikbaar komen in zowel Windows als Azure. Microsoft zegt dat het samenwerkt met Canonical, Intel, Red Hat en SUSE, en dat gebruikers kunnen kiezen welke Linux-distributie zij willen gebruiken.

Naast LinuxKit kondigde Docker het Moby-project aan, dat een aantal componenten en een framework biedt voor het bouwen van eigen containersystemen. Docker is een dienst die het mogelijk maakt om software te draaien in een container, die in alle benodigdheden voorziet. Het verschil met een virtual machine is bijvoorbeeld dat er minder systeemcapaciteit benodigd is.

Sander van Voorst

Nieuwsredacteur

19 april 2017 11:26

56 reacties

Submitter: nickurt

Linkedin Google+

Reacties (56)

Wijzig sortering
Het grote voordeel is dat je nu in je applicatiestack linux en windows componenten kunt mixen met eenzelfde docker cli client.

Bijvoorbeeld, je kan een webapp bouwen met als database sql server voor windows, redis voor caching en dotnet core achter nginx op de web tier, en dat allemaal draaien op 1 window server.

Niet dat dat vroeger niet kon, maar nu wordt deployment zo goed als een one-liner met bvb docker-compose.

Kunnen we eindelijk vaarwel zeggen tegen geknoei meer met virtuele machines opzetten, linux installs, windows installs, software installes, enz...
Dat begrijp ik niet zo goed. Ik denk dat er weinig bedrijven zijn die anno 2017 hun applicatielandschap op een enkele Windows-server laten draaien. Sowieso heb je met containers amper virtuele machines meer nodig, en kan je beter kijken naar een containerplatform zoals bijv. Kubernetes (ben je direct ook van Windows af).

De toegevoegde waarde van LinuxKit zie ik veel meer voor developers. Developers die op Windows werken kunnen een complete representatieve development-omgeving (inclusief Linux-applicaties) op hun eigen Windows-laptop draaien. Dat lijkt me nou wel enorm handig (ik werk en ontwikkel graag op Windows, maar ik kan/wil absoluut geen Windows-server beheren).
Ik wou maar aangeven dat de tooling nu uniform wordt. Uiteraard is alles draaien op 1 server niet de eindbedoeling. Maar als de engine al ondersteunt dat je zowel windows als linux containers kan draaien op een zelfde platform, dan kan je evengoed een kubernetes (of ander orchestratieplatform) ontwikkelen waar je ook windows en linux containers kunt mixen zonder van tooling of denkparadigma moet veranderen.

En op kubernetes kan je dan weer een PAAS op (zoals deis, cfr nieuws: Microsoft neemt platform-as-a-service Deis over)

Voor dev en testing geef je de toepassing zelf al aan.
Ik heb heel veel moeite met te zien wat het voordeel op Docker for Windows (of eender welke Docker versie) eigenlijk is? Want daar kan ik dit ook allemaal mee, alsook docker-compose gebruiken.

Please enlighten me :)
Klopt, maar je kon nog niet gelijktijdig zowel Windows-based containers (https://blog.docker.com/2...windows-server-container/ ) als Linux-based containers behandelen. En dat gaat nu wel kunnen.

Denk
docker run redis => draait op linuxkit als hyper-v container
docker run microsoft/mssql-server-windows => draait als windows container (al dan niet in hyper-v, zie https://docs.microsoft.co...ntainers/hyperv-container)

[Reactie gewijzigd door masterpoi op 19 april 2017 19:47]

Docker for Windows zal nu misschien niet meer super traag zijn omdat het
niet meer door een heavy weight VM (Hyper-V, VirtualBox) moet ?
Ik moet eerlijk zijn, ik merk amper dat er een VM wordt gestart (hyper-v). Traag is een woord dat ik absoluut niet zou gebruiken hoor.
Van de FAQ
Why not use systemd?

In order to keep the system minimal, systemd did not seem appropriate, as it brings in a lot of dependencies and functionality that we do not need. At present we are using the busybox init process, and a small set of minimal scripts, but we expect to replace that with a small standalone init process and a small piece of code to bring up the system containers where the real work takes place.
_O-

De vraag is in hoeverre dit nog in de toekomst mogelijk is, aangezien het userland ecosysteem steeds meer systemd-only gaat worden.
Het hoeft niet, maar zal vast kunnen. Ik verwacht dat voor minimale containers (simpele kernel + niet teveel erop) je dus geen systemd krijgt, maar zodra je een volledige distro wilt draaien, al dan niet met grafische schil, je niet om systemd heen kunt...

Ja, ik snap al het geklaag over die grote, logge en bemoeizuchtige systemd, maar van de andere kant deed iedere distro iets anders, vaak vertrouwend op eeuwenoude code die slecht (of niet) onderhouden werd. Daarnaast staat het mensen vrij om iets zonder systemd te zoeken (ofwel een oudere stack, ofwel iets BSD-achtigs, of gewoon een van de zeldzame systemd-loze mainstream-forks). Echter blijkt dat het merendeel van de gebruikers er geen been in ziet, en juist blij is dat de boel nu redelijk gemanaged wordt.
Daarnaast staat het mensen vrij om iets zonder systemd te zoeken (ofwel een oudere stack, ofwel iets BSD-achtigs, of gewoon een van de zeldzame systemd-loze mainstream-forks).
systemd-loze mainstream forks zijn er inderdaad, zoals Devuan, SalentOS, Salix, Arch OpenRC en Manjaro OpenRC.

Er zijn echter ook mainstream-distro's die default zonder systemd komen zoals Gentoo, Slackware, PCLinuxOS, Puppy, Void en veel kleinere niet-forks zoals Source Mage, Dragora, TLD, Openwall, Crux, OviOS, GoboLinux. Daarnaast zijn er een paar forks die zelf ook redelijk mainstream geworden zijn zoals Absolute, Calculate, Funtoo, Porteus, Zenwalk.
Echter blijkt dat het merendeel van de gebruikers er geen been in ziet, en juist blij is dat de boel nu redelijk gemanaged wordt.
Merendeel is gebruiker en kijkt niet naar wat er onder zit, tot er problemen komen.
Merendeel problemen is op te lossen via de standaard Windows methode: reïnstall werkt meestal ook in Linux.
Ja, ik snap al het geklaag over die grote, logge en bemoeizuchtige systemd, maar van de andere kant deed iedere distro iets anders, vaak vertrouwend op eeuwenoude code die slecht (of niet) onderhouden werd.
Ja er moest wat veranderen, en sommige distro's waren op eigen houtje met iets gaan experimenteren. Destijds had men echter beter overleg gepleegd.
Iedere distro deed iets anders. Nu wordt het een distro's zonder systemd verenigt u want anders is er straks geen alternatief.

Het ziet er naar uit (al ik het lijstje op http://without-systemd.org naloop) dat het merendeel van de non-systemd distro's de voorkeur geeft aan openRC met busybox als als goede tweede, sys v init als derde runit als vierde, bsd-style init als vierde en s6 als vijfde en Bootscripts (Gobolinux) als hekkesluiter.

Upstart, wat o.a. Ubuntu vroeger gebruikte, wordt nergens meer genoemd. Hoewel ik niet precies de detaïls ken, lijken mij technisch gezien Upstart, S6 en runit het beste, echter die zijn alle drie zo goed als verdwenen. Bootscripts wordt alleen door Gobolinux gebruikt en lijkt me ook geen grotere toekomst weggelegd. Uiteindelijk blijven dus over openRC bovenop sys v init, sys v init zonder openRC en bsd-style init (wat ook bij xBSD gebruikt wordt)

Runit wordt door slechts 1 persoon onderhouden, dus valt snel af. openRC echter bouwt op sys v init dus dat blijft aanwezig. Ik heb geen antwoord op wat wijs is
t zal wel aan mij liggen, maar .... waarom? ("omdat het kan :F")

als ik de documentatie zo beetje doorlees is het niet veel meer dan qemu op win32, toch?
In de woorden van Steve Balmer: "Developers! Developers! Developers!"

Steve heeft ooit goed ingezien dat je developers nodig hebt om je platform een succes te maken. In je eentje lukt dat niet, zelfs MS is niet groot genoeg om alle applicaties zelf te leveren. Als je de developers voor je wint dan bouw je vanzelf een aantrekkelijke softwarecollectie op.

Linux is met de jaren steeds groter geworden terwijl Windows terrein moet inleveren aan Android. Linux is voornamelijk populair onder technische gebruikers en dat is precies de hoek waar ook de developers zitten. Internetapplicaties worden steeds belangrijker en de meeste webservers draaien op Linux. Veel van de applicaties en programmeertalen die tegenwoordig gebruikt worden zijn onder Linux ontwikkelt en draaien daar het makkelijkst (niet noodzakelijk het beste, maar het makkelijkst, met het minste gedoe, vanuit de developer gezien).

Docker maakt het makkelijk om een hele applicatiestack in een keer te installeren. Developers gebruiken dan (onder Linux) al vaak om een exacte kopie van hun productie-omgeving op hun desktop te draaien.

Daarnaast verstopt Docker het dependency-probleem* en dat vinden veel developers aantrekkelijk. De meeste applicaties maken gebruik van allerlei third-party libraries. Voor developers is het makkelijk om alles in één grote installer te stoppen (een docker, of een setup.exe). Het probleem is dat ze die onderdelen dan wel regelmatig moet bijwerken. Dat gebeurt vaak niet, het is makkelijker om alles maar zoveel mogelijk hetzelfde te houden. Fouten worden dan niet verbeterd en het is maar de vraag of de eindgebruiker uberhaupt weet dat de defecte onderdelen worden gebruikt. De meeste mensen interesseert dat echter niet, die zijn al lang blij als de applicatie werkt, en dan is Docker wel erg makkelijk.

* Ik weet dat dit niet fundamenteel is, ook Docker-applicaties kun je goed beheren en onderhouden,maar in praktijk zie ik dat zelden of nooit. Als Docker op deze manier gebruikt wordt is dat meestal juist om niet aan beheer te hoeven doen.
Daarnaast verstopt Docker het dependency-probleem* en dat vinden veel developers aantrekkelijk. De meeste applicaties maken gebruik van allerlei third-party libraries. Voor developers is het makkelijk om alles in één grote installer te stoppen (een docker, of een setup.exe). Het probleem is dat ze die onderdelen dan wel regelmatig moet bijwerken. Dat gebeurt vaak niet, het is makkelijker om alles maar zoveel mogelijk hetzelfde te houden. Fouten worden dan niet verbeterd en het is maar de vraag of de eindgebruiker uberhaupt weet dat de defecte onderdelen worden gebruikt. De meeste mensen interesseert dat echter niet, die zijn al lang blij als de applicatie werkt, en dan is Docker wel erg makkelijk.
En dat is dan ook meteen het grote probleem met docker, snap, flat, en al die andere bullshit die er enkel voor zorgt dat de devs minder moeten werken (hun shit uptodate houden, bugs fixen, packagen). Waarom zou jij je applicatie updaten om een nieuwe versie van een van de 20 libs die je gebruikt te kunnen gebruiken?. Dit is een ramp die staat te wachten en de idioten kunnen maar niet stoppen met het loflied te zingen.

Ik zit er echt niet op te wachten om net zoals bij Windows (vroeger iig, maar nog altijd een issue tegenwoordig) vijftig verschillende versies van libraries te hebben omdat er te weinig geupdate wordt.
Precies, donker wordt naar voren geschoven als de oplossing voor alle dependancy problemen. Maar ondertussen moet er alleen maar meer beheer uitgevoerd worden. Iedere container moet immers ook ge-update worden....

Daarnaast moet de data nog ergens weg worden geschreven van een container moet je immers zo kunnen vervangen. Waar gaat dit heen?

Misschien snap ik het allemaal nog niet zo goed want ik heb er nog niet veel ervaring mee maar tot nu toe lost het nog niet veel problemen op...
Heel die server, applicatie en nu omgevingvirtualisatie is natuurlijk eigenlijk niet meer dan een lappendeken omdat het OS niet modern genoeg is om dit zelf te bieden. Eigenlijk is het simpel draaien en isoleren van apps en veilig communiceren tussen applicaties de kerntaak van een OS....
Heel die server, applicatie en nu omgevingvirtualisatie is natuurlijk eigenlijk niet meer dan een lappendeken omdat het OS niet modern genoeg is om dit zelf te bieden.
Een OS hoort dat ook niet aan te bieden. Het is een Operating System, niet een Virtualisation System.
Eigenlijk is het simpel draaien en isoleren van apps en veilig communiceren tussen applicaties de kerntaak van een OS....
Nope.
operating system
noun
the low-level software that supports a computer's basic functions, such as scheduling tasks and controlling peripherals.
En daar houdt het op. Wat jij wil is de taak van andere tools, die soms wel en soms niet meegeleverd worden met het OS.

Nog geen nood gehad aan een container wanneer een VM zoveel meer biedt (op gebied van security en reliability). En die nood zal er ook nooit komen voor mij.
Het scheiden van applicaties/services is wel degelijk een taak van een OS. Tenzij je Windows 3.11 ook prima vindt voldoen. Alles op 1 hoop... en hopen dat iedereen zich gedraagd.
Het probleem is dat ze die onderdelen dan wel regelmatig moet bijwerken. Dat gebeurt vaak niet, het is makkelijker om alles maar zoveel mogelijk hetzelfde te houden. Fouten worden dan niet verbeterd en het is maar de vraag of de eindgebruiker uberhaupt weet dat de defecte onderdelen worden gebruikt. De meeste mensen interesseert dat echter niet, die zijn al lang blij als de applicatie werkt, en dan is Docker wel erg makkelijk.

Perfect voor Nederlandse IT bedrijven die aan de Nederlandse overheid leveren! Uitmuntend! Zal vast razend populair worden onder de Nederlandse Programmeurs. :+

[Reactie gewijzigd door Texamicz op 19 april 2017 19:19]

Waarom?? Simpel ik ben geen Linux beheerder maar mijn klant vraagt om een specefieke Linux tool. Ik kan die nu niet draaien zonder Linux te installeren wat ik lastig vind omdat ik de kennis niet direct hebt.

Nu kan ik een Docker Container bij de leverancier aanvragen. ik hoef deze alleen te runnen op mijn server. En hoppa mijn klant blij en ik blij.

Het heeft in bepaalde opzichten dus echt wel ene toegevoegde waarde om docker op windows te kunnen draaien zonder dat je diepe Linux kennis nodig hebt.
Als ik heel eerlijk ben krijg ik de kriebels van een dienstverlener die geen Linux-applicaties kan leveren. Dan krijg ik toch sterk het gevoel dat ik voor een bezemkast aan het betalen ben.
Als Windows- en Linuxkenner kan ik je zeggen dat beide werelden hun voors en tegens hebben.

Door het integreren van beide werelden op één platform, zorg je ervoor dat je de krachten van beide omgevingen optimaal kunt benutten.

Het is gewoon super dat Microsoft de afgelopen jaren (post-Ballmer tijdperk) zo aan de weg aan het timmeren is op het gebied van Windows / Linux interoperabiliteit.
Het enige wat dit gaat bereiken is dat de klungelige Windows admins gaan proberen Linux software te gebruiken en er massief in falen want als Linux draaien al te lastig is...
Dit is leuk als je enkel een laptop hebt en te lui bent van er Linux op te zetten en je toch af en toe iets van Linux software wil gebruiken (geen idee waarom, ssh voldoet altijd).
Dit is leuk als je enkel een laptop hebt en te lui bent van er Linux op te zetten en je toch af en toe iets van Linux software wil gebruiken.
Inderdaad voor mij dus, de tweaker en luie admin. Maar laat nu een laptop toch net nog iets moeilijker met Linux (IGP, Touchpad, Special keys, Power Mgmt) te besturen zijn.
Werkt allemaal hoor, niks moeilijk aan. Al mijn laptops draaien Linux, op slechts 1 staat er nog een Windows voor als ik eens iets nodig heb dat vlotter via Windows gaat (meestal gekoppeld aan bedrijven die geen drivers willen schrijven; laatste keren was het altijd Android gerelateerd ook).
1 Thinkpad en 2 oudere HP's. Mijn (nu kapotte) Packard Bell werkte ook perfect hoor.
Een van de HP's heeft een brakke wifi kaart steken waar het nogal zoeken is welke RT driver er nu werkt (want dat is nogal een rotzooi bij ralink). Gelukkig gebruik ik zelden wifi maar dat kan gerust een probleem zijn. Eerder dan alles wat jij opnoemde.
Eerder dan alles wat jij opnoemde.
Ja daar heb je waarschijnlijk gelijk in. Het kwam gewoon niet in me op omdat ik bijna overal UTP heb liggen :D.
Ik ook, daarom dat het voor mij zelden een probleem is, maar dat is wel iets wat anderen gebruiken. De touchpads werken op alle laptops die ik al in mijn handen gehad heb... de tijd dat die nog een probleem waren was de tijd dat ik nog zelf mijn Xorg config mocht schrijven.
Oef... SuSE onder Win10 draaien zonder omslachtige HyperV ertussen zou te gek zijn.
Bash werkt al prima inderdaad, maar das nog niet alles wat ik nodig heb 😊
Microsoft zou kunnen overwegen een Linux kernel te gaan voeren onder hun Windows schil (vergelijkbaar met MacOS). Ik heb, sinds ik Linux en OS X/MacOS heb leren kennen, geen argument kunnen ontdekken waarom Microsoft dit niet zou moeten doen. Backwards compatibility kan m.i. worden opgelost met emulatie, totdat alle software voor 100% geschikt is voor de Linux kernel.
Dat roep ik al jaren. Komt zelfs een tijd dat windows domweg open source wordt.
Het argument is natuurlijk dat het heel veel geld en tijd kost zonder dat het duidelijk is wat het oplevert. Ik zie Microsoft eerder hun diensten beschikbaar maken op Linux dan de kernel van Windows omzetten naar Linux.
Maar MacOS draait helemaal geen Linux onder de schil. Het is gewoon een POSIX Compliant OS. Windows is dat niet. Wat dat betreft staan Linux en OSX veel dichter bij elkaar. Je kan niet even verwachten dat Windows dat ook doet met een totaal andere kernel.
Onder de UI van macOS draait Darwin, een derivaat van FreeBSD op een MACK microkernel.
MS Windows NT biedt sinds versie 3.1 een UNIX personality; die is POSIX zij het dat die tot "bash onder Windows" (bizarre benaming !) wel erg karig was en veel liefde benodigde om bruikbaar te zijn. Bij gebrek aan die aandacht (door MS) was installatie van cygwin onvermijdelijk als je iets op zijn *NIX wilde kunnen doen.
Is het anders om ook mogelijk? Mn nano servers op een linux server?
Nano is geen container enkel een gestripte Windows server. Je kunt nano dus denk ik prima onder een Linux virtual host draaien net als een normale Windows server. Het idee van nano is echter heel anders met desired state configuratie en uiteraard het liefst beheerd vanuit de (Microsoft) cloud. Je moet ook wel want iedere 4 maanden moet je een nieuwe build uitrollen.
ik heb het helemaal verkeerd gezegd. Mijn vraag was of je windows images kan draaien op een linux server. dus het omgekeerde wat nu via de linuxkit kan.
Yep,dat kan prima. De meeste bekende hypervisors hiervoor zijn Xen en KVM.
Heel goede zet. Kan ik alles opdezelfde (Windows) container host of Swarm draaien.

Bij Microsoft mis ik nog steeds wat meer windows server applicaties die als container moeten kunnen draaien.
Een IIS, Sql Server express, nano core van Windows is een eerste stap. Is daar vooruitgang ?

Wat bvb met Dynamics, Exchange als container ?
IIS en SQL zouden prima kunnen lijkt mij maar Nano is een OS dus eerder een donker tegenhanger. SQL heeft ook al een Linux build dus wie weet.

Exchange gaat nooit gebeuren lijkt me. Het best practice design is ook gebaseerd op fysieke (cheap) servers. Ze willen dan liever dat je dan naar Office 365 gaat. Hetzelfde lijkt me gelden voor dynamics.
Ter info : Tijdens een Docker meetup bij Microsoft heb ik vorig jaar dezelfde vraag gesteld. Het antwoord was dat er op dit moment geen belangrijke technische belemmeringen zijn maar eerder de problematiek van licensing verder moet uitgewerkt worden.

Mijn idee toen was dat ze daarmee hun Azure stack wel eens zouden kunnen kannibaliseren. En laat dat nu net de meest groeiende winstmotor van Microsoft zijn.

Dit zijn de microsoft docker images:
https://hub.docker.com/u/microsoft/?page=1
Excuus, met "kan niet" bedoelde ik nauwelijks werkbaar. Hele idee van docker is kleine behapbare laagjes maken. Beginnen met 5GB basis image defeats the purpose IMHO
"azure stack" hun winst motor?? Azure ja maar dat gaat alleen maar goed samen juist met containers. zie bijvoorbeeld Azure Container Services.

of bedoel je niet het product Azure Stack?
Inderdaad ik had het over Azure als dienst waar je dus al een hele boel cloud diensten, al dan niet 365 kan afnemen.
Zou mooi zijn om alles mooi in containers on premise en/of in andere container hosters kan draaien.
Microsoft vind dat helemaal niet erg hoor want als je dat doet maak je de stap naar de cloud veel makkelijker waar het nu vaak lastige trajecten zijn
Ik zag dat Unraid nog niet genoemd was en wilde het even aanraden als eenvoudige praktische kennismaking met dockers. :Y) Als je een thuis server wil met wat opslag tenminste. Kan tegenwoordig in andere NAS oplossingen ook wel trouwens, als je die al hebt.
Je kunt een volledig mixed IT landschap kwijt in 1 Docker Container als tester/ontwikkelaar. Die je daarna kunt gebruiken voor je applicatie ontwikkeling, bug searching/hunting.. noem maar op. Elke keer weer terug te plaatsen en opnieuw mee te beginnen.
Ik ontwikkel ASP.NET Core applicaties en hoewel deze cross plat kunnen draaien ben je soms afhankelijk van Windows only componenten. Dus Windows Server als host. Dan is het wel fijn dat je bv Redis naast je applicatie kan draaien in een Docker container ipv een aparte Linux bak er weer naast. Het is omdat het kan, maar het biedt ook keuzevrijheid.

Op dit item kan niet meer gereageerd worden.


Nintendo Switch Google Pixel XL 2 LG W7 Samsung Galaxy S8 Google Pixel 2 Sony Bravia A1 OLED Microsoft Xbox One X Apple iPhone 8

© 1998 - 2017 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Hardware.Info de Persgroep Online Services B.V. Hosting door True

*