user:jan001:ba:docker
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
user:jan001:ba:docker [2021/02/09 15:07] – jan001 | user:jan001:ba:docker [2021/08/24 17:35] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Docker ====== | ====== Docker ====== | ||
- | Bei Docker handelt es sich um ein open-source (Apache 2.0 Lizenz) System um sogenannte Container zu betreiben und zu verwalten. Dies dient im besonderen dazu Code effizient in kurzer Zeit auf diversen Systemen lauffähig zu machen. (Turnbull, 2019, S.7-8) So hilft Docker eine Applikation von der Infrastruktur zu separieren und so zu isolieren (Docker Inc., o.J.). | + | Bei Docker handelt es sich um ein open-source (Apache 2.0 Lizenz) System um sogenannte Container zu betreiben und zu verwalten. Dies dient im besonderen dazu Code effizient in kurzer Zeit auf diversen Systemen lauffähig zu machen. (Turnbull, 2019, S.7-8) So hilft Docker eine Applikation von der Infrastruktur zu separieren und so zu isolieren (Docker Inc., o.J.a). |
==== Funktionsweise und Unterschied zu virtuellen Maschinen ==== | ==== Funktionsweise und Unterschied zu virtuellen Maschinen ==== | ||
Line 11: | Line 11: | ||
- Führe einen Befehl aus. | - Führe einen Befehl aus. | ||
- Öffne einen Port. | - Öffne einen Port. | ||
- | Wie zusehen ist, sind diese Images sehr trivial aufgebaut. Das macht es besonders einfach sie zu teilen und zu modifizieren. (Turnbull, 2019, S.12) Ein weiterer Vorteil der Images ist es, dass sie aufeinander basieren können. So ist es beispielsweise möglich ein eigenes Image zu erstellen welches auf dem Image von Ubuntu basiert. So ein Image wird dann in einer Dockerfile erstellt. Jeder weitere hinzugefügte Befehl wird als eine neue Ebene gesehen. Ein Vorteil welcher Docker von anderen Container-Systemen unterscheidet ist, dass Docker ein Image nicht komplett neu baut, wenn in der Dockerfile sich eine Ebene verändert. Es werden lediglich die veränderten Ebenen erneuert. Das macht, laut Docker Inc., die Images so klein und schnell. Die meisten der allgemein bekannten Docker Images werden in Registries | + | Wie zusehen ist, sind diese Images sehr trivial aufgebaut. Das macht es besonders einfach sie zu teilen und zu modifizieren. (Turnbull, 2019, S.12) Ein weiterer Vorteil der Images ist es, dass sie aufeinander basieren können. So ist es beispielsweise möglich ein eigenes Image zu erstellen, welches auf dem Image von Ubuntu basiert. So ein Image wird dann in einer Dockerfile erstellt. Jeder weitere hinzugefügte Befehl wird als eine neue Ebene gesehen. Ein Vorteil, welcher Docker von anderen Container-Systemen unterscheidet, ist, dass Docker ein Image nicht komplett neu baut, wenn in der Dockerfile sich eine Ebene verändert. Es werden lediglich die veränderten Ebenen erneuert. Das macht, laut Docker Inc., die Images so klein und schnell. Die meisten der allgemein bekannten Docker Images werden in Registries |
+ | Die Docker Container werden zur Laufzeit von der Docker Engine mit Hilfe der Docker Images generiert. Da Docker Container standardisiert sind, sind sie mit anderen Container Umgebungen kompatibel. (Docker Inc., o.J.b) Auch das macht sie sehr portabel. Dies wird auch dadurch gefördert, dass die Container selber kein eigenes Betriebssystem und Kernel umfassen, da dies mit dem Host-System geteilt wird. Dies ist auch gleichzeitg einer der großen Unterschiede zu virtuellen Maschinen. Ein Container beinhaltet lediglich die Anwendung und deren Abhängigkeiten. So ist es auch möglich mehrere Container auf einem Host zu betreiben, wobei diese stets voneinander isoliert sind. Virtuelle Maschinen hingegen sind zwar auch voneinander isoliert, aber sie eignen sich besser dazu, physikalisch Hardware zu emulieren. Dafür enthält jede virtuelle Maschine ein eigenes Betriebssystem inklusive Kernel. Das macht sie deutlich ressourcenintensiver in der Bereitstellung, | ||
- | ==== Docker-Compose | + | Oftmals besteht eine Applikation nicht nur aus einer Anwendung. So können Webapplikationen beispielsweise einen Backend-Webserver und dazu noch eine oder mehrere Datenbanken enthalten. Dafür können natürlich mehrere Container einzeln über die Kommandozeile mit Hilfe der Docker Engine angelegt und verwaltet werden. Dies ist aber sehr aufwändig und auch schlecht replizierbar. Genau für solche Einsatzzwecke wurde das Tool Docker-Compose |
==== Einsatzgebiete ==== | ==== Einsatzgebiete ==== | ||
- | + | Docker wird sowohl in der Entwicklung, | |
- | + |
user/jan001/ba/docker.1612879625.txt.gz · Last modified: 2021/08/24 17:34 (external edit)