Docker (Software)

Aus InkluPedia
Docker
Logo
Maintainer Solomon Hykes
Entwickler Docker Inc.
Betriebssystem Linux, BSD, Windows, OS X
Programmiersprache Go
Kategorie Virtualisierung
Lizenz Apache License 2.0
Website docker.com

Docker ist eine Open-Source-Anwendungssoftware der Docker Inc. Docker ermöglicht es, Anwendungen samt ihrer Abhängigkeiten in Linux-Container (LXC) zu intergrieren, damit die Anwendungen transportierbar und darüber auch ausführbar ist. Es ist für Linux, BSD, Windows und OS X verfügbar. Die Docker-Engines für Windows und OS X sind nativ, die Container selbst nutzen jedoch eine virtualisierte Instanz der Linux-Distribution Alpine.[1] Im Gegensatz zu normaler Virtualisierungssoftware benötigen die Docker-Container kein Gastbetriebssystem und es wird keine Hardware emuliert. Weitere Vorteile sind der geringe Ressourcenbedarf und die kurzen Startzeiten im Vergleich zu einer Virtualisierung. Docker ist unter der Apache License 2.0 verfügbar.[2] Gründer und Chief Technical Officer (CTO) ist Solomon Hykes.[3]

Details

Docker kann unterschiedliche Schnittstellen zur Virtualisierung von Teilen des Linux-Kernels nutzen[4]

Durch die die Unterstützung der schlanken Linuxdistribution Boot2docker, welche auf Tiny Core Linux basiert, lässt sich Docker auch mit OS X-, Microsoft Windows- und .NET-Anwendungen nutzen. Boot2docker nutzt dazu "VBoxManage" von Oracles Virtualisierungssoftware VirtualBox. Am 9. Juni 2014 erfolgte die Freigabe der Docker Version 1.0, womit die Software für den Unternehmenseinsatz freigegeben ist. Dokumentationen und Trainings stehen zur Verfügung. Die Version 1.0 wird mindestens ein Jahr lang unterstützt. Mit der Veröffentlichung der Version 1.0 ist auch ein sogenannter "Docker Hub" an den Start gegangen. "Docker Hub" ist ein zentrales Repository für Programme, die Docker nutzen. Bereits zum Start des Cloud-Dienstes sind ca. 14.000 Anwendungen verfügbar. Diese sind teilweise kostenlos, andernteils sind über kommerziellen Dienstleistungen von Docker Inc. verfügbar. Softwareunternehmen wie Amazon, Google und Red Hat haben früh begonnen, Docker zu unterstützen.[5]

Die Software Panamax bietet eine Benutzeroberfläche zum Erzeugen von Containern für Software. Panamax kann als Frontend für Docker, Fleet und CoreOS genutzt werden. Als Speicher-Backend können in Docker verschiedene Dateisysteme verwendet werden, darunter das Overlay-Dateisystem aufs, das Copy-On-Write-Dateisystem Btrfs sowie devicemapper.[6]

Geschichte

Hykes startete Docker als Platform as a Service (PaaS) innerhalb von dotCloud. Im März 2013 wurde Docker als Open-Source-Software veröffentlicht.[7] Am 23. Juli 2013 gab dotCloud bekannt, dass Ben Golub dem Unternehmen beigetreten ist. Golub war zuvor CEO bei dem Softwareunternehmen Gluster und davor bei Plaxo.[8] Im Januar 2014 gab Docker bekannt, dass sie 15 Mio. US-Dollar Risikokapital angeführt von Greylock Partners erhalten. Mit den vorherigen Kapitalgebern Benchmark Capital, Trinity Ventures und dem Yahoo-Mitbegründer Jerry Yang hat Docker bis dahin bereits 26 Mio. US-Dollar Risikokapital eingesammelt.[9]

Seit dem 17. April 2014 hat die Docker REST API offiziell die Ports 2375 (unverschlüsselt) und 2376 (verschlüsselt) von der "Internet Assigned Numbers Authority" (IANA) zugewiesen bekommen.[10] Die im Juni 2014 veröffentlichte Version 7 von "Red Hat Enterprise Linux" nutzt die Container-Lösung Docker, um den Schwerpunkt Cloud Computing der Distribution umzusetzen.[11] Anfang Juli 2014 stellte der NAS-Hersteller Qnap die nachrüstbare Anwendung Virtualization Station zur Unterstützung von Docker-Containern zur Verfügung.[12] Im Juli 2014 haben sich Microsoft, Red Hat, IBM, Docker, Mesosphere, CoreOS und SaltStack dem Docker-Manager-Projekt Kubernetes angeschlossen, das von Google gestartet wurde.[13]

Im August 2014 hat openSUSE die Verfügbarkeit von offiziellen Docker-Containern für openSUSE 13.1 bekanntgegeben.[14] Nur wenige Tage später gab CoreOS die Bereitstellung eines Repositories für Docker-Container bekannt, nachdem CoreOS den Host für private Docker-Container Quay.io übernommen hatte.[15] Ende August verkündete der Vorstandsvorsitzende von VMware, Pat Gelsinger, auf der VMworld Konferenz eine Partnerschaft mit Docker, Google und Pivotal.[16] Ebenfalls Ende August 2014 hat Microsoft bekannt gegeben, dass die Microsoft-Cloud-Lösung Azure die Docker-Verwaltung Kubernetes unterstützt.[17] Mitte Oktober 2014 wurde eine Partnerschaft von Microsoft und Docker Inc bekannt gegeben, welche Docker unter Windows nutzbar machen soll.[18]

Ab Herbst 2014 entwickelten Mitglieder des Eclipse Linux Tools Project von Red Hat für die integrierte Entwicklungsumgebung Eclipse Plug-ins für die Verwaltung von Docker Images und Containern innerhalb von Eclipse.[19] Seit der im Oktober 2014 veröffentlichten Version 1.3.0 kann die Integrität von Docker-Containern mittels digitaler Signaturen automatisch überprüft werden und boot2docker wurde in Mac OS X integriert.[20] Anfang November 2014 kündigte Mark Shuttleworth auf der OpenStack-Summit in Paris an, dass Canonical zusammen mit Docker Inc. an einem sicheren Hypervisor für Container namens LXD arbeitet. LXD soll Open Source werden und in sechs Monaten einsatzbereit sein.[21] Ebenfalls anfang November 2014 hat Google auf der Google Cloud Platform Live in San Francisco eine neue Container Engine zur Nutzung der Container-Verpackungstechnik Docker in der eigenen Cloud-Plattform und weitere Dienste angekündigt[22] Am 4. Dezember 2014 hat Docker Inc. auf der DockerCon Europe 2014 in Amsterdam, Niederlande eine Orchestrations-Plattform vorgestellt. Diese besteht aus den Diensten Docker Machine, Docker Swarm und Docker Compose, die als freie Software bereits als Alphaversionen zur Verfügung stehen. Die Fertigstellung ist für das 2. Quartal 2015 geplant.[23]

Seit Version 1.5.0 vom 3. Februar 2015 können jedem Container IPv6-Addressen zugewiesen werden. Hinzugekommen ist auch die Unterstützung von Nur-Lese-Zugriffsrechten und Statistikfunktionen.[24] Anfang März 2015 übernahm Docker das Open-Source-Projekt Kitematic.[25] Der NAS-Hersteller Synology stellt im März 2015 in der Betaversion der geplanten Betriebssystemversion DSM 5.2 die Unterstützung für Docker-Container zur Verfügung.[26] Mitte April 2015 wurde bekannt gegeben, dass Docker in einer von Insight Venture Partners angeführten Finanzierungsrunde 95 Millionen US-Dollar Investitionskapital erhalten hat. Seit der letzten Finanzierungsrunde im September 2014 hat sich die Anzahl der Mitarbeiter bei Docker auf 120 verdoppelt.[27] Am 16. April 2015 gab Microsoft bekannt, das mit der Docker-Version 1.6.0 die Kommandozeile für Windows verfügbar ist.[28]

Docker gründete mit Amazon Web Services, Apcera, Cisco, CoreOS, EMC, Fujitsu Limited, Goldman Sachs, Google, HP, Huawei, IBM, Intel, Joyent, Linux Foundation, Mesosphere, Microsoft, Pivotal, Rancher Labs, Red Hat und VMware das Open Container Project (OCP).[29] Das Projekt wurde am 22. Juni 2015 auf der DockerCon in San Francisco bekannt gegeben.[30] Im Jahr 2015 übernahm Docker weiterhin SocketPlane und Tutum.[31]

Am 21. Januar 2016 gab Docker die Übernahme des britischen Startup-Unternehmens Unikernel Systems bekannt.[32] Docker 1.10 vom 4. Februar 2016 brachte viele neue Funktionen mit. Unter anderem wurden Seccomp-Profile integrierte, welche die Sicherheit verbessern und ein Container darf nun mehrere Hostnames als Aliases erhalten. Der neue Befehl docker update ermöglicht Änderungen der Container-Ressourcen - wie den verfügbaren Speicher - ohne einen Neustart. Die Engine kennt nun temporäre Dateisysteme und kann die Disk-I/O künstlich beschränken.[33] Anfang März 2016 gab Docker die Übernahme von Conductant bekannt, die das Framework Apache Aurora ins Leben gerufen haben.[34]

Am 24. März 2016 hat Docker eine Beta-Versionen für Windows und Mac vorgestellt. Darin enthalten sind eine Alpine-Linux-Distribution in einer Hyper-V-VM für Windows oder xhyve-VM für Mac OS X, die Docker-Befehlszeile, Compose und Notary sowie ein DNS-Server für Container. Beim Mac läuft die Beta parallel zur Docker Toolbox.[35][36] Mit der fünften Preview von Windows Server 2016 veröffentlichte Microsoft im April 2016 das PowerShell-Modul für Docker als Open Source bei GitHub unter der MIT-Lizenz.[37] Die am 20. Juni 2016 veröffentlichte Version 1.12 hat erstmals eine eingebaute Orchestrierung. Diese dient dazu, Gruppen von Containern gemeinsam zu starten. Das ist nicht auf einen einzelnen Host-Rechner beschränkt, sondern kann ein ganzes Netzwerk umfassen. Seit Version 1.12 müssen sich alle Knoten mit TLS gegenseitig authentifizieren, was die Sicherheit erhöht. Die Einrichtung der Zertifizierungsstelle und der Schlüssel geschieht automatisch.[38] Während der Betaphase der Docker-Engines für Windows und OS X verwendete Docker VirtualBox zur Virtualisierung. In der stabilen Version 1.12 von Juli 2016 wird hingegen bei Windows Hyper-V und bei OS X Xhyve verwendet. Bereits Ende 2014 beschlossen Microsoft und Docker eine Zusammenarbeit. Das kommende neue Betriebssystem Windows Server 2016 unterstützt Container und wird die Docker-Engine in einer angepassten Version verwenden.[1]

Seit Version 1.12.1 vom 18. August 2016 kann Docker auch auf ARM-basierenden Geräten wie dem Raspberry Pi (hier über Raspbian Jessie) ausgeführt werden. An der ARM-Unterstützung hat das deutsche Hypriot-Team aus Bamberg maßgeblich mitgewirkt.[39] Docker 1.13 vom 19. Januar 2017 enthält ein eigenes Container-Orchestrierungswerkzeug, neue Sicherheits-Features, eine neue Remote API samt zugehöriger Client-Software und zahlreiche Überarbeitungen am Swarm Mode. Weiterhin können zwecks Abwärtskompatibilität nur neue CLIs (Command Line Interfaces) mit älteren Daemons sprechen. Dadurch können Docker-Installationen mit verschiedenen Versionen von derselben Maschine aus verwaltet werden. Debian- und RPM-Pakete lassen sich nun auf Ubuntu-16.10-, Ubuntu-16.04- und Fedora-25-Betriebssystemen bauen und die PPC64le- (PowerPC 64-Bit Little Endian) und s390x-Architekturen (IBM System z) nutzen. Weiterhin wurden Docker für AWS und Docker für Azure für den Produktiveinsatz freigegeben.[40]

Integration

Docker kann in verschiedene Infrastruktanwendungen integriert werden, darunter:

  • Ansible: Open-Source-Software zur Orchestrierung und Konfiguration und Administration von Computern
  • CFEngine: Regel-basiertes Computer-Verwaltungssystem
  • Chef: Freie Software für Konfigurationsmanagement
  • Jenkins: Webbasiertes Open-Source-Programmierwerkzeug zur kontinuierlichen Integration
  • Microsoft Azure: Microsofts Cloud-Computing-Plattform mit dem Cloud-Betriebssystem Windows Azure
  • OpenStack: Software für freie Architektur für Cloud-Computing
  • OpenSVC: Software für Disaster Recovery und Systemmanagement
  • Puppet: Open-Source-Software für Konfigurationsmanagement von Computern mit Unix-/Linux/FreeBSD-Betriebssystemen
  • Salt: Open-Source-Software für Konfigurationsmanagement
  • Vagrant: Freie Open-Source-Software zur Erstellung und Konfiguration von virtuellen Entwicklungsumgebungen. Seit Version 1.4 aus Dezember 2013 unterstützt Vagrant Docker zum Provisionieren von virtuellen Maschinen und ist in der Lage es zu installieren.[2]

Versionen (Auswahl)

Versionshistorie[41]

Version Datum
0.3.3 23. Mai 2013
0.5.0 18. Juli 2013
0.6.7 22. November 2013
1.0 9. Juni 2014
1.1.0 3. Juli 2014
1.2.0 22. August 2014
1.3.0 16. Oktober 2014
1.4.1 16. Dezember 2014
1.5.0 3. Februar 2015
1.6.0 17. April 2015
1.7.0 18. Juni 2015
1.8.0 11. August 2015
1.9.0 3. November 2015
1.10.0 4. Februar 2016
1.11.0 13. April 2016
1.12.0 14. Juli 2016
1.13.0 19. Januar 2017

Weblinks

Quellen

  1. 1,0 1,1 Docker für Windows und OS X stabil veröffentlicht - Pro-Linux, 29. Juli 2016
  2. 2,0 2,1 Anwendungen mit Docker transportabel machen | heise Developer, 28.02.2014
  3. What Is Docker? An open platform for distributed apps
  4. Docker 0.9: introducing execution drivers and libcontainer | Docker Blog, March 10, 2014
  5. Virtualisierung: Docker 1.0 für den Unternehmenseinsatz | heise online, 10.06.2014
  6. Supported Filesystems — Project Atomic
  7. Docker: Automated and Consistent Software Deployments, Mar 27, 2013
  8. PaaS pioneer dotCloud gets new CEO in industry vet Ben Golub — Tech News and Analysis, Jul. 23, 2013
  9. Docker's open-source bet pays off with $15M round | VentureBeat | Business | by Jordan Novet, January 21, 2014
  10. Service Name and Transport Protocol Port Number Registry
  11. Red Hat Enterprise Linux 7 veröffentlicht » ADMIN Magazin, 11.06.2014
  12. Test: NAS wird zum VM-Server | c't, 22.8.2014
  13. Kubernetes für Docker: Alle machen mit » ADMIN Magazin, 11.07.2014
  14. Docker-Container für Opensuse 13.1 verfügbar - Pro-Linux, 8. August 2014
  15. CoreOS bietet nun auch ein Repository für Docker-Container an | heise online, 14.08.2014
  16. Partnerschaft von Docker und VMware verkündet - Pro-Linux, 26. August 2014
  17. Anwendungs-Container: Microsofts Azure unterstützt Docker-Verwaltung Kubernetes | heise online, 29.08.2014
  18. Anwendungs-Container: Microsoft will Docker für Windows entwickeln | heise online, 15.10.2014
  19. Docker Tooling in Eclipse: Ran an die Container! - JAXenter, 27. Mai 2016
  20. Docker 1.3: signed images, process injection, security options, Mac shared directories | Docker Blog
  21. Canonical arbeitet mit Docker an neuem Hypervisor für Container - Pro-Linux, 5. November 2014
  22. Anwendungs-Container: Googles Compute Engine unterstützt Docker | heise online, 05.11.2014
  23. Docker Inc. stellt Orchestrations-Plattform vor - Pro-Linux, 4. Dezember 2014
  24. Anwendungs-Container: Docker 1.5 erschienen | heise online, 11.02.2015
  25. Linux-Container: Docker kauft Kitematic | heise online, 13.03.2015
  26. CeBIT 2015: Synology packt Docker ins NAS | heise online, 19.03.2015
  27. Anwendungs-Container: Docker kann weitere 95 Millionen sichern | heise online, 15.04.2015
  28. Docker Client for Windows is Now Available | Microsoft Azure Blog
  29. Container für alle: Open Container Project vorgestellt | heise online, 23.06.2015
  30. EnterpriseTech | Goldman Sachs Brokers Container Spec Deal, June 22, 2015
  31. Docker kauft Unikernel Systems - Pro-Linux, 22. Januar 2016
  32. Docker Acquires Unikernel Systems As It Looks Beyond Containers | TechCrunch, Jan 21, 2016
  33. Anwendungscontainer: Docker 1.10 bringt erweiterte Sicherheits- und Netzwerkfunktionen | heise online, 05.02.2016
  34. Anwendungs-Container: Docker übernimmt mit Conductant die Macher von Apache Aurora | heise online, 04.03.2016
  35. Anwendungscontainer: Docker für Mac und Windows als Beta veröffentlicht | heise online, 29.03.2016
  36. Docker for Mac and Windows Beta: the simplest way to use Docker on your laptop | Docker Blog, March 24, 2016
  37. Neue Vorschau auf Windows Server 2016 | heise online, 28.04.2016
  38. Docker 1.12 mit eingebauter Orchestrierung erschienen - Pro-Linux, 21. Juni 2016
  39. Docker landet auf dem Raspberry Pi und anderen ARM-Systemen | heise Developer, 19.08.2016
  40. Containerisierung: Mehr Orchestrierung und bessere Interoperabilität bei Docker 1.13 | heise online, 20.01.2017
  41. docker/CHANGELOG.md at master · docker/docker · GitHub