Docker (Software)

Aus InkluPedia
Docker
Logo
Entwickler Docker Inc.
Aktuelle Version 18.09.8
(17. Juli 2019[1])
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.[2] 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.[3] Gründer ist Solomon Hykes.[4]

Details

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

Durch die die Unterstützung der schlanken Linux-Distribution 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.[6]

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.[7]

Die ursprünglich von Red Hat entwickelte Docker-Alternative Podman ist auf Kommandozeile kompatibel mit Docker. Podman verzichtet auf den Docker Daemon und setzt unter der Haube auf den Image-Builder Buildah. Damit kann die Container Engine Container ohne Root-Zugriff zur Verfügung stellen. Am 17. Januar 2019 wurde Version 1.0 von Podman veröffentlicht.[8]

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.[9] 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.[10] 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.[11]

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.[12] 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.[13] Anfang Juli 2014 stellte der NAS-Hersteller Qnap die nachrüstbare Anwendung Virtualization Station zur Unterstützung von Docker-Containern zur Verfügung.[14] 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.[15]

Im August 2014 hat openSUSE die Verfügbarkeit von offiziellen Docker-Containern für openSUSE 13.1 bekanntgegeben.[16] 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.[17] Ende August verkündete der Vorstandsvorsitzende von VMware, Pat Gelsinger, auf der VMworld Konferenz eine Partnerschaft mit Docker, Google und Pivotal.[18] Ebenfalls Ende August 2014 hat Microsoft bekannt gegeben, dass die Microsoft-Cloud-Lösung Azure die Docker-Verwaltung Kubernetes unterstützt.[19] Mitte Oktober 2014 wurde eine Partnerschaft von Microsoft und Docker Inc bekannt gegeben, welche Docker unter Windows nutzbar machen soll.[20]

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.[21] 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.[22] 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.[23] 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[24] Am 4. Dezember 2014 hat Docker Inc. auf der DockerCon Europe 2014 in Amsterdam in den Niederlanden 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.[25]

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.[26] Anfang März 2015 übernahm Docker das Open-Source-Projekt Kitematic.[27] 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.[28] 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.[29] Am 16. April 2015 gab Microsoft bekannt, das mit der Docker-Version 1.6.0 die Kommandozeile für Windows verfügbar ist.[30]

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).[31] Das Projekt wurde am 22. Juni 2015 auf der DockerCon in San Francisco bekannt gegeben.[32] Im Jahr 2015 übernahm Docker weiterhin SocketPlane und Tutum.[33]

Am 21. Januar 2016 gab Docker die Übernahme des britischen Startup-Unternehmens Unikernel Systems bekannt.[34] 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.[35] Anfang März 2016 gab Docker die Übernahme von Conductant bekannt, die das Framework Apache Aurora ins Leben gerufen haben.[36]

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.[37][38] 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.[39] 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.[40] 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.[2]

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.[41] 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 (Amazon Web Services) und Docker für Azure für den Produktiveinsatz freigegeben.[42] Am 8. Februar 2017 wurde Docker 1.13.1 veröffentlicht. Die darauffolgende Version bekam die Nummer 17.03.0-ce-rc1. Das Versionsschema wurde mit dieser Version geändert, da Docker auf einen monatlichen Veröffentlichungszyklus umgestellt wurde.[43] Am 15. März 2017 wurde FreeNAS Corral unter anderem mit Unterstützung von Docker Containern veröffentlicht. FreeNAS ist ein freies Betriebssystem für Network Attached Storage (NAS).[44]

Am 12. April 2017 wurde von dem Unternehmen Rancher Labs die Distribution RancherOS 1.0.0 allgemein veröffentlicht.[45] RancherOS ist für den Einsatz von Containern ausgelegt. So startet zum Beispiel das Betriebssystem nicht mit einem traditionellen init-Programm, sondern direkt mit Docker. Alle weitere Software packt RancherOS ebenfalls in Container. RancherOS steht unter der Apache-2.0-Lizenz. Die Distribution kann neben der Selbstinsallation auch per AMI-Abbild für Amazons EC2 oder als Image für Googles Compute Engine bezogen werden.[46] Auf der DockerCon 2017 vom 17. bis 20. April 2017 in Austin, Texas stellte Docker Inc. sein neues Projekt Moby vor. Moby besteht aus einer Bibliothek in Containern verpackter Backend-Komponenten und einem Framework, um diese zusammensetzen zu können. Mit Moby Origin besteht eine Referenzzusammenstellung oder -Assembly, die auch die Grundlage der Docker-Containerplattform darstellt.[47] Im Oktober 2017 wurde auf der DockerCon EU 2017 in Kopenhagen bekannt gegeben, dass die Containerplattform Docker in Zukunft die Orchestrierungsplattform Kubernetes unterstützen wird. Die eigene Orchestrierungsvariante Docker Swarm wird damit nicht von Docker aufgegeben. Beide Orchestrierungswerkzeuge sollen zusammenarbeiten können.[48]

Seit Version 9.0.1FP10 vom 1. Februar 2018 unterstützt IBM Domino die Plattform Docker.[49] Mit der im März 2018 veröffentlichten Version 1.0 von der auf Docker beruhenden Anwendung Karton lassen sich Linux-Kommandozeilenprogramme unter unterschiedlichen Linux-Distributionen, auf anderen Architekturen und auch auf macOS ausführen. Dabei besitzen die Programm Zugriff auf lokale Dateien. Die Unterstützung von X11-Programmen ist geplant. Ist das Programm für eine fremde Architektur geschrieben, so sorgt Karton dafür, dass das Programm mit der freien Virtualisierungssoftware QEMU abgearbeitet wird. Karton 1.0 setzt Docker und Python voraus.[50] Am 28. März 2018 kündigte Docker-Mitgründer und langjährige CTO Solomon Hykes an, das Unternehmen zu verlassen.[51][52] Am 8. November 2018 wurde das kostenpflichtige Docker Enterprise 2.1 veröffentlicht.[53] Am selben Tag wurde auch das Windows Server Application Migration Program bekanntgemacht.[54] Damit bietet Docker Anwendern eine Migrationsmöglichkeit an, die vom Microsofts angekündigtem Ende des Supports von Windows Server 2008 am 14. Januar 2020 betroffen sind.[55] Auf der DockerCon EU Anfang Dezember 2018 in Barcelona kündigte Docker, Inc. das neue kostenpflichtige Produkt Docker Desktop Enterprise an.[56]

Integration

Docker kann in verschiedene Infrastruktanwendungen integriert werden, darunter:

  • Amazon Web Services (AWS): Online-Dienste des US-amerikanischen Unternehmens Amazon.com
  • 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.[3]

Versionen (Auswahl)

Versionshistorie[1][57]

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
17.04.0-ce 5. März 2017
17.06.0-ce 28. Juni 2017
17.07.0-ce 29. August 2017
17.10.0-ce 17. Oktober 2017
18.01.0-ce 10. Januar 2018
18.02.0-ce 7. Februar 2018
18.03.0-ce 21. März 2018
18.04.0-ce 10. April 2018
18.05.0-ce 10. Mai 2018
18.06.0-ce 18. Juli 2018
18.09.0 8. November 2018

Weblinks

Quellen

  1. 1,0 1,1 Releases · docker/docker-ce · GitHub
  2. 2,0 2,1 Docker für Windows und OS X stabil veröffentlicht - Pro-Linux, 29. Juli 2016
  3. 3,0 3,1 Anwendungen mit Docker transportabel machen | heise Developer, 28.02.2014
  4. What Is Docker? An open platform for distributed apps
  5. Docker 0.9: introducing execution drivers and libcontainer | Docker Blog, March 10, 2014
  6. Virtualisierung: Docker 1.0 für den Unternehmenseinsatz | heise online, 10.06.2014
  7. Supported Filesystems — Project Atomic
  8. Die Docker-Alternative Podman erreicht Version 1.0 | heise Developer
  9. Docker: Automated and Consistent Software Deployments, Mar 27, 2013
  10. PaaS pioneer dotCloud gets new CEO in industry vet Ben Golub — Tech News and Analysis, Jul. 23, 2013
  11. Docker's open-source bet pays off with $15M round | VentureBeat | Business | by Jordan Novet, January 21, 2014
  12. Service Name and Transport Protocol Port Number Registry
  13. Red Hat Enterprise Linux 7 veröffentlicht » ADMIN Magazin, 11.06.2014
  14. Test: NAS wird zum VM-Server | c't, 22.8.2014
  15. Kubernetes für Docker: Alle machen mit » ADMIN Magazin, 11.07.2014
  16. Docker-Container für Opensuse 13.1 verfügbar - Pro-Linux, 8. August 2014
  17. CoreOS bietet nun auch ein Repository für Docker-Container an | heise online, 14.08.2014
  18. Partnerschaft von Docker und VMware verkündet - Pro-Linux, 26. August 2014
  19. Anwendungs-Container: Microsofts Azure unterstützt Docker-Verwaltung Kubernetes | heise online, 29.08.2014
  20. Anwendungs-Container: Microsoft will Docker für Windows entwickeln | heise online, 15.10.2014
  21. Docker Tooling in Eclipse: Ran an die Container! - JAXenter, 27. Mai 2016
  22. Docker 1.3: signed images, process injection, security options, Mac shared directories | Docker Blog
  23. Canonical arbeitet mit Docker an neuem Hypervisor für Container - Pro-Linux, 5. November 2014
  24. Anwendungs-Container: Googles Compute Engine unterstützt Docker | heise online, 05.11.2014
  25. Docker Inc. stellt Orchestrations-Plattform vor - Pro-Linux, 4. Dezember 2014
  26. Anwendungs-Container: Docker 1.5 erschienen | heise online, 11.02.2015
  27. Linux-Container: Docker kauft Kitematic | heise online, 13.03.2015
  28. CeBIT 2015: Synology packt Docker ins NAS | heise online, 19.03.2015
  29. Anwendungs-Container: Docker kann weitere 95 Millionen sichern | heise online, 15.04.2015
  30. Docker Client for Windows is Now Available | Microsoft Azure Blog
  31. Container für alle: Open Container Project vorgestellt | heise online, 23.06.2015
  32. EnterpriseTech | Goldman Sachs Brokers Container Spec Deal, June 22, 2015
  33. Docker kauft Unikernel Systems - Pro-Linux, 22. Januar 2016
  34. Docker Acquires Unikernel Systems As It Looks Beyond Containers | TechCrunch, Jan 21, 2016
  35. Anwendungscontainer: Docker 1.10 bringt erweiterte Sicherheits- und Netzwerkfunktionen | heise online, 05.02.2016
  36. Anwendungs-Container: Docker übernimmt mit Conductant die Macher von Apache Aurora | heise online, 04.03.2016
  37. Anwendungscontainer: Docker für Mac und Windows als Beta veröffentlicht | heise online, 29.03.2016
  38. Docker for Mac and Windows Beta: the simplest way to use Docker on your laptop | Docker Blog, March 24, 2016
  39. Neue Vorschau auf Windows Server 2016 | heise online, 28.04.2016
  40. Docker 1.12 mit eingebauter Orchestrierung erschienen - Pro-Linux, 21. Juni 2016
  41. Docker landet auf dem Raspberry Pi und anderen ARM-Systemen | heise Developer, 19.08.2016
  42. Containerisierung: Mehr Orchestrierung und bessere Interoperabilität bei Docker 1.13 | heise online, 20.01.2017
  43. Release v17.03.0-ce-rc1 · docker/docker · GitHub
  44. Introducing FreeNAS Corral: The World's First Open Source Hyper-converged Storage Platform - FreeNAS - Open Source Storage Operating System, Mar 15, 2017
  45. [Press Release] RancherOS Hits General Availability | Rancher Labs, Apr 12, 2017
  46. RancherOS 1.0.0: LTS-Release des Docker-Linux freigegeben | heise online, 14.04.2017
  47. DockerCon: Docker stellt "Lego-Set" Moby für Systembauer vor | heise online, 19.04.2017
  48. Container: Docker unterstützt Kubernetes | heise Developer, 17.10.2017
  49. Notes/Domino Fix List - IBM Notes®/Domino® 9.0.1 Feature Pack 10 Release Notice
  50. Karton 1.0 erschienen - Pro-Linux, 14. März 2018
  51. Docker-Gründer Solomon Hykes verabschiedet sich | heise Developer, 29.03.2018
  52. Au revoir - Docker Blog, March 28, 2018
  53. Introducing Docker Enterprise 2.1 - Advancing Our Container Platform Leadership - Docker Blog, November 8, 2018
  54. Docker Launches New Program for Migrating Legacy Windows Server 2008 Applications to Alleviate End of Support Issues | Docker, November 8, 2018
  55. Docker startet Migrationsprogramm für Windows-Server-2008-Applikationen | heise Developer
  56. Docker Desktop Enterprise: "Digitale Transformation oder Irrelevanz" | heise Developer
  57. docker/CHANGELOG.md at master · docker/docker · GitHub