Einführung in die Welt der Docker Container - Docker
Version vom 16. Mai 2024, 18:59 Uhr von Robin.will (Diskussion | Beiträge)
Seite 18-21
Wozu benötigt man Docker?
- Bei der Entwicklung von Anwendungen benötigt man stets die unterschiedlichsten Bibliotheken, Datenbanken oder Tools. Wenn man mehrere Anwendungen gleichzeitig auf dem selben System in Betrieb nehmen möchte, muss erst die Kompatibilität der einzelnen Tools etc. überprüft werden. Meist stoßt man hier schon auf Streitigkeiten.
- Docker baut einen eigenen Container, der eine unabhängige und kleine Plattform bietet für die Anwendung.
- Dadurch das die Container in ihrer "eigenen Umgebung" laufen beeinflussen sie die anderen Container nicht und somit können mehrere Container auf einem System mit den Unterschiedlichsten Tool Versionen laufen.
Was kann ich mir unter Docker vorstellen?
- Docker ist ein Tool welches die Entwicklung und Einbringung von Anwendungen mithilfe der Containervirtualisierung erleichtert. Ein Docker-Container packt alle Bibliotheken, Datenbanken, Treiber oder auch Konfigurationsdateien zusammen.
- Durch virtueller Betriebssysteme können Docker-Container systemunabhängig integriert werden.
Was ist Docker nicht?
- Docker ist nicht für Client Anwendungen wie Word oder Excel gedacht. Docker sind für Server-Anwendungen wie z.B. ein Webserver.
Grobe Entwicklungsgeschichte
- Die Firma Docker Inc. wurde im Sommer 2010 von Solomon Hykes und Sebatian Pahl gegründet.
- Docker lief erstmalig mit der Technologie von LXC (Linux Container). 2014 wurde diese durch eine eigene Docker-Komponente ersetzt.
- Sepbtember 2013 Begonn die Zusammenarbeit zwischen Docker und "Fedora Linux" und "Red Hat Enterprice Linux" und "Open Shift Container".
- Oktober 2014 integriete Microsof die Docker Engine in Windows Server.
- November 2014 begann Amazon mit dem Einsatz von Docker Container.
- Mai 2019 Microsoft beginnt mit der Entwicklung einer Docker Version auf Basis von "WSL 2".
- November 2019 wurde Scott Johnston von Rob Bearden der neue CEO von Docker.
Docker Begriffe
Was ist ein Container?
- Ein Container ist die Zusammenfassung mehrerer Komponenten in einer eigenen Umgebung.
- Container sind von einander getrennt aber können über einen definierten Kommunikationskanal Informationen austauschen.
- Durch die Entkopplung der Container werden Versionsunterschiede von Tools, Bilbiotheken, etc. umgangen
Was ist ein Container Image?
- Docker Images sind die Grundbausteine eines Containers.
- Ein Image stellt eine Anwendung bereit mit allen nötigen Bibliotheken und Tools.
- Aus einem Image geht dann ein Docker-Container hervor mit der laufenden Anwendung.
Das Dockerfile
- Das Dockerfile ist ein Textdokument, dass die Befehle für das zusammenstellen eines Images beeinhaltet.
- Diese Befehle können auch einfach in der Kommandozeile abgesetzt werden um den Container aus dem Image zu bauen.
- Hier sind ein paar Elemente des Dockerfiles:
- FROM-Anweisung
- Als erstes wird die FROM-Anweisung gegeben FROM <imagename>[:<tag>] .
- Diese Bestimmt welches Image genutzt wird.
- Der tag kann optional bestimmt werden um die Version zu bestimmen.
- RUN-Anweisung
- Diese Anweisung führt beliebige shell Kommandos durch
- Bsp.: RUN chmod +x ./hello.sh (macht die Datei hello.sh im Container ausführbar)
- CMD-Anweisung
- Die CMD Anweisung ist ähnlich der RUN Anweisung, aber kann nur einmal in einem Dockerfile verwendet werden.
- Das Bedeutet wenn die CMD Anweisung öfter auftritt wird nur die letzte des Files gewertet.
- Bsp.: RUN ["param1", "param2"]
- COPY-Anweisung
- COPY kopiert Dateien oder Verzeichnisse des Host Systems auf dem Dateisystem des Images zu.
- Bei der COPY Anweisung wird immer eine <src> und eine <dest> angegeben.
- Bsp.: COPY html /usr/share/nginx/html
- FROM-Anweisung
Was ist die Docker Engine?
i
Seite 24-29
Seite 106-109