12 open-source tools die Docker beter maken

Knipper en misschien mis je tegenwoordig enkele van de meest interessante ontwikkelingen rond Docker. Kubernetes krijgt misschien meer van de hot-new-tool onweer, maar Docker blijft "net genoeg" containerorkestratie bieden voor de meeste ontwikkelingsprojecten en implementaties.

Plus Docker heeft zijn eigen rijke ecosysteem van tools van derden die Docker uitbreiden, opfleuren of minder pijnlijk maken. Hier zijn 12 open-sourcecreaties die een boost krijgen van Docker of Docker een boost geven, Docker gebruiken voor specifieke use-cases of Docker gemakkelijker maken om mee te werken.

Duiken

Docker-afbeeldingen zijn als sandwiches, met veel lagen. Misschien is het beter om te zeggen dat ze als sandwiches in ondoorzichtige wikkels zijn: je weet niet altijd hoeveel lagen er zijn of wat er in zit. Met Dive kunt u de lagen in een Docker-afbeelding visueel verkennen via een interactieve gebruikersinterface. U kunt zien welke ingrediënten in elke laag aanwezig zijn en ook bepalen hoe elke laag de onderliggende laag heeft veranderd (wat is toegevoegd of verwijderd). U kunt ook een afbeelding analyseren op verspilde of gedupliceerde ruimte en de resultaten zelfs doorgeven aan uw continue integratiepijplijn, zodat een afbeelding met te veel verspilde ruimte het bouwproces niet doorstaat.

Docker Compose UI

Docker Compose UI is een MIT-gelicentieerd project dat Docker Compose voorziet van een webgebaseerde gebruikersinterface, die is gebouwd met behulp van Pythons Flask-framework. Containers kunnen lokaal of op een externe host worden uitgevoerd en Docker Compose UI zelf is voor het gemak beschikbaar in een Docker-container. Merk op dat sommige van de demoprojecten die worden geleverd met Docker Compose UI niet kunnen worden geschaald "vanwege gepubliceerde poortconflicten."

Dockly

Het meeste Docker-werk wordt uitgevoerd via een CLI- of terminalinterface, en de standaard Docker-CLI ziet er ongeveer hetzelfde uit als elk ander CLI-programma. Dockly biedt een terminalinterface op volledig scherm voor Docker: een dashboard in tekstmodus van alle actieve containers, een liveweergave van containerlogboeken en gebruiksstatistieken en een ingebouwde shell-tab. 

Stoffig

Dusty is een door Docker aangedreven ontwikkelomgeving met MIT-licentie en is bedoeld om het gebruik van Docker Compose of Vagrant voor het beheren van containers te verbeteren. De ontwikkelaars achter Dusty beweren bijvoorbeeld dat Dusty een eenvoudiger specificatiemodel heeft dan Docker Compose, en dat het versie-gebaseerde isolatie van app-afhankelijkheden en updates van services beter afhandelt dan Vagrant. Dusty maakt het ook mogelijk om tests te maken als onderdeel van een specificatie voor een omgeving, en maakt het mogelijk om veelgebruikte meerstaps procedures om te zetten in een gemakkelijk aan te roepen script.

Elsy

Elsy wordt beschreven als "een eigenzinnige, meertalige bouwtool" met Docker en Docker Compose. Met Elsy kan een softwarerepository consistent in verschillende omgevingen worden gebouwd en blijft de tooling die nodig is om de build uit te voeren tot een minimum beperkt, ongeacht welke taal er wordt gebruikt. Een aangeprezen functie  blackbox-testmaakt het mogelijk om elke gebouwde container te testen op een manier die het werkelijke productiegebruik weerspiegelt. Voor elke service die een database nodig heeft, wordt er bijvoorbeeld een databasecontainer voor ingesteld en Elsy zal de testomgeving daarna automatisch afbreken.

Gockerize

Hier is er een voor fans van de Go-taal. Gockerize is een tool met BSD-licentie om statische Go-binaire bestanden te bouwen en deze in minimale Go-containers te verpakken. Gockerize is gemaakt door de mensen achter AeroFS en bevat functies zoals “de mogelijkheid om automatisch een set patches toe te passen op de Golang-standaardbibliotheek; iets dat, hoewel het zelden nodig is, levens kan redden ”, aldus de blogpost waarin het project wordt geïntroduceerd. Gockerize vertrouwt niet veel extern - alleen Go, Docker 1.5 of hoger, en de Bash-shell.

Habitus

Een andere op Docker gebaseerde build-tool, Habitus, gebruikt een Dockerfile en een build.yml-bestand om multi-step container-builds te maken die een willekeurig aantal willekeurige commando's bevatten. Elke stap in de build kan worden gemaakt om te vertrouwen op een eerdere stap, om ervoor te zorgen dat eventuele lastige meerstapsafhankelijkheden correct werken. Habitus ondersteunt ook het opnemen van geheimen in een bouwproces en doet dit zonder sporen achter te laten in de afbeelding.

Hyper

Gefactureerd als een "hypervisor-agnostische tool waarmee je Docker-images op elke hypervisor kunt draaien", gebruikt Hyper Docker, QEMU en Xen om zijn doelen te bereiken. De makers van de tool beweren dat Hyper minimale bronnen (28 MB) gebruikt, opstart met de snelheid van een container in plaats van een VM, hoge prestaties levert en hardware-afgedwongen isolatie voor applicaties biedt. Een voorgestelde use-case voor Hyper is het maken van multi-tenant, Docker-gebaseerde applicaties.

Kitematisch

Soms wil je gewoon een GUI. Kitematic geeft je een GUI voor het beheren van Docker-containers op MacOS, Ubuntu Linux en Windows. Extra Kitematic-gemakken zijn onder meer het automatisch blootstellen van containervolumegegevens via het bestandssysteem, het bieden van een ingebouwde CLI aan Docker en het automatisch synchroniseren van de status ervan om overeen te komen met wijzigingen aan Docker (bijvoorbeeld wanneer u nieuwe containerimages toevoegt).

Logspout

De Unix-wereld heeft een lange traditie in het combineren van kleine programma's om grote problemen op te lossen. Logspout past dezelfde filosofie toe bij het beheren van logboeken vanuit Docker-containers. Logspout leidt alle logboeken ( stdout en  stderrvoornamelijk) van alle containers op een bepaalde host door naar het doel dat u het beste acht. De resulterende geaggregeerde logboeken kunnen in realtime worden bekeken door simpelweg een HTTP-stream te lezen.

Portainer

Zelfs een relatief eenvoudige Docker-stack kan veel bewegende delen hebben: containers, afbeeldingen, netwerken, volumes, geheimen. Dat alles in je hoofd bijhouden is geen oplossing. Portainer biedt een web-UI voor Docker-omgevingen, of het nu gaat om enkele hosts of clusters, en biedt een enkel overzicht van alles wat u gebruikt. Beheer en overzicht voor alle gangbare Docker-componenten zijn niet meer dan een paar klikken verwijderd. Het beste van alles is dat het geheel wordt geïmplementeerd in uw bestaande Docker-infrastructuur als een enkele container.

Walvisbrouwsel

MacOS-gebruikers zouden bekend moeten zijn met Homebrew, het ad-hoc pakketbeheersysteem voor MacOS. Met Whalebrew kun je Docker-images installeren en ze rechtstreeks vanaf de opdrachtregel uitvoeren via een alias, alsof het lokaal geïnstalleerde uitvoerbare bestanden zijn. Pakketten installeren is net zo eenvoudig als typen whalebrew install . Pakketten die zijn samengesteld via de repository van Whalebrew werken het beste, maar in theorie zou elke Docker-image die CLI-opdrachten accepteert, moeten werken.