Docker und die Containerwelt: Einstieg und Expertentipps rund um Docker-Container
1/5
()
Über dieses E-Book
Zunächst zeigt Thomas Claudius Huber, wie der Einstieg in die Containerwelt gelingen kann und erläutert die Grundlagen, Hintergründe und Vorteile von Docker, um dann Schritt für Schritt den praktischen Ablauf des Container-Deployments zu erklären. Der Fokus liegt dabei auf .NET und dem Microsoft-Ökosystem, jedoch sind die Grundlagen für alle Entwickler von Bedeutung. Anschließend zeigt Dr. Holger Schwichtenberg anhand einprägsamer Beispiele fünf Möglichkeiten auf, Windows- und Linux-basierte Docker-Container zu hosten. Einen Schritt weiter geht Rainer Stropek und veranschaulicht, wie Sie Container serverless in der Cloud betreiben können; die Beispiele beziehen sich auf die Azure-Plattform, doch sind auch in diesem Fall die Grundprinzipien plattformunabhängig und ohne Weiteres auf andere Cloud-Dienste übertragbar. Zum Abschluss zeigen Dr. Mahmoud Reza Rahbar Azad und Phil Stelzer an einem ausführlichen Beispiel, wie Sie Datenbanken containerisieren, sie zusammen mit Webapplikationen deployen und welche Vorteile das hat.
Ähnlich wie Docker und die Containerwelt
Titel in dieser Serie (29)
F#: Ein praktischer Einstieg Bewertung: 0 von 5 Sternen0 BewertungenAmazon Web Services für .NET Entwickler Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 Anforderungsmanagement: Work Items und Prozessvorlagen Bewertung: 0 von 5 Sternen0 BewertungenHTML5 Security Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Bewertung: 0 von 5 Sternen0 BewertungenUX Design - Definition und Grundlagen: Definition und Grundlagen Bewertung: 4 von 5 Sternen4/5Testing mit Visual Studio 2012: Testing mit Visual Studio 2012 Bewertung: 0 von 5 Sternen0 BewertungenQualitätssicherung mit JavaScript und PHP Bewertung: 0 von 5 Sternen0 BewertungenPaaS - Die wichtigsten Java Clouds auf einen Blick: Die wichtigsten Java Clouds auf einen Blick Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 TFS 2012 Team Build - Architektur und Installation: Architektur und Installation Bewertung: 0 von 5 Sternen0 BewertungenErfolgreich bewerben in der IT - die besten Praxistipps von A wie (Anschreiben) bis Z (wie Zeugnis) Bewertung: 0 von 5 Sternen0 BewertungenAndroid-Entwicklung für Einsteiger - 20.000 Zeilen unter dem Meer: 2. erweiterte Auflage Bewertung: 0 von 5 Sternen0 BewertungenNintex Workflow: Konzepte und Strategien für leistungsfähige SharePoint-Workflows Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: Minecraft-Welten erschaffen Bewertung: 0 von 5 Sternen0 BewertungenMigration von ZF1 nach ZF2 - ein Überblick Bewertung: 0 von 5 Sternen0 BewertungenBarrierefreiheit - Handwerkszeug und technisches Verständnis: Handwerkszeug und technisches Verständnis Bewertung: 0 von 5 Sternen0 BewertungenPIC-Mikrocontroller: Grundlagen und Praxisworkshop Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenGL in Space Bewertung: 0 von 5 Sternen0 BewertungenEinführung in die Programmierung von 2-D-Spielen Bewertung: 0 von 5 Sternen0 BewertungenMicrocontroller für das IoT Bewertung: 0 von 5 Sternen0 BewertungenBessere Softwareentwicklung mit DevOps Bewertung: 0 von 5 Sternen0 BewertungenCross-Plattform: Entwicklung und Anwendung Bewertung: 0 von 5 Sternen0 BewertungenSoft Skills in der IT Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: Minecraft-Welten erschaffen Teil 2 Bewertung: 0 von 5 Sternen0 BewertungenEinstieg in TypeScript: Grundlagen für Entwickler Bewertung: 0 von 5 Sternen0 BewertungenDas Vulkan-API: Teil 3: Umgang mit 3-D-Daten Bewertung: 0 von 5 Sternen0 BewertungenVue.js für alle: Wissenswertes für Einsteiger und Experten Bewertung: 0 von 5 Sternen0 BewertungenEinstieg ins Machine Learning: Grundlagen, Prinzipien, erste Schritte Bewertung: 0 von 5 Sternen0 BewertungenDocker und die Containerwelt: Einstieg und Expertentipps rund um Docker-Container Bewertung: 1 von 5 Sternen1/5
Ähnliche E-Books
Softwarearchitektur für Dummies Bewertung: 0 von 5 Sternen0 BewertungenCross-Plattform: Entwicklung und Anwendung Bewertung: 0 von 5 Sternen0 BewertungenCloud Computing Grundlagen: Technisch / rechtlich / wirtschaftlich und architekturell Bewertung: 0 von 5 Sternen0 BewertungenC# 10 – kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenVerschlüsselt! Bewertung: 0 von 5 Sternen0 BewertungenPython lernen – kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenMehr als Clean Code: Gedanken zur Softwareentwicklung Bewertung: 0 von 5 Sternen0 BewertungenEinfach Verschlüsseln Bewertung: 0 von 5 Sternen0 BewertungenBessere Softwareentwicklung mit DevOps Bewertung: 0 von 5 Sternen0 BewertungenPrinzipien des Softwaredesigns: Entwurfsstrategien für komplexe Systeme Bewertung: 0 von 5 Sternen0 BewertungenPHP 7 und MySQL: Ihr praktischer Einstieg in die Programmierung dynamischer Websites Bewertung: 0 von 5 Sternen0 BewertungenEIGENE Blockchain und Smart Contract's erstellen: Für Anfänger geeignet, Schritt für Schritt Erklärung Bewertung: 0 von 5 Sternen0 BewertungenCloud Computing Anbietervergleich: Amazon / Microsoft / Google & Co Bewertung: 0 von 5 Sternen0 Bewertungen23 Wege um eine (agile) Transformation an die Wand zu fahren: Der ultimative Leitfaden zur Eliminierung von Selbstorganisation und Mitarbeitermotivation Bewertung: 0 von 5 Sternen0 BewertungenMaschinelles Lernen In Aktion: Einsteigerbuch Für Laien, Schritt-Für-Schritt Anleitung Für Anfänger Bewertung: 0 von 5 Sternen0 BewertungenEinstieg in TypeScript: Grundlagen für Entwickler Bewertung: 0 von 5 Sternen0 BewertungenWeb-Applikationen entwickeln mit NoSQL: Das Buch für Datenbank-Einsteiger und Profis! Bewertung: 0 von 5 Sternen0 BewertungenLinux Befehlsreferenz: Schnelleinstieg in die Arbeit mit der Konsole, regulären Ausdrücken und Shellscripting Bewertung: 0 von 5 Sternen0 BewertungenDas Bitcoin-Handbuch Bewertung: 0 von 5 Sternen0 BewertungenProjektmanagement kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenASP.NET Core: Eine Einführung Bewertung: 0 von 5 Sternen0 BewertungenSchnell Start Kubernetes Bewertung: 0 von 5 Sternen0 BewertungenKnigge für Softwarearchitekten Bewertung: 0 von 5 Sternen0 BewertungenHeim-Netzwerke: Netzwerktechnik • High-Speed-Internet • Arbeiten im Heimnetz Bewertung: 0 von 5 Sternen0 BewertungenBlockchain - Und Wie Sie Funktioniert: Der Endgültige Leitfaden Für Einsteiger Über Blockchain Wallet, Mining, Bitcoin, Ethereum, Litecoin Bewertung: 0 von 5 Sternen0 BewertungenPerspektiven für Informatiker 2019: Branchenüberblick, Erfahrungsberichte und Tipps zum Berufseinstieg Bewertung: 0 von 5 Sternen0 BewertungenJavaScript und Ajax: Das Praxisbuch für Web-Entwickler Bewertung: 0 von 5 Sternen0 BewertungenProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Bewertung: 0 von 5 Sternen0 BewertungenDie großen Neun: Wie wir die Tech-Titanen bändigen und eine Künstliche Intelligenz zum Wohle aller entwickeln können Bewertung: 0 von 5 Sternen0 BewertungenJava – kurz & gut Bewertung: 0 von 5 Sternen0 Bewertungen
Computer für Sie
Computergeschichte(n): Die ersten Jahre des PC Bewertung: 0 von 5 Sternen0 BewertungenLexikon der Symbole und Archetypen für die Traumdeutung Bewertung: 5 von 5 Sternen5/5Niklas Luhmann: "... stattdessen ...": Eine biografische Einführung Bewertung: 0 von 5 Sternen0 BewertungenDie Welt der Commons: Muster gemeinsamen Handelns Bewertung: 0 von 5 Sternen0 BewertungenAnglizismen und andere "Fremdwords" deutsch erklärt: Über 1000 aktuelle Begriffe Bewertung: 0 von 5 Sternen0 BewertungenSAFe® 4.6: Eine Anleitung zur lean agilen Revolution? Bewertung: 0 von 5 Sternen0 BewertungenCommand Line Kung Fu: Bash-Scripting-Tricks, Linux Tipps und praktische Einzeiler für die Shell Bewertung: 0 von 5 Sternen0 Bewertungen60+ Webtools - Für den Unterricht und mehr: Unterricht Digital gestalten und spielerisch Online Unterrichten Bewertung: 0 von 5 Sternen0 BewertungenKinderlieder: 100 Liedertexte der schönsten Kinderlieder Bewertung: 4 von 5 Sternen4/5HOPIUM: Texte zu Zeitenwende, Technokratie und Korporatismus III Bewertung: 0 von 5 Sternen0 BewertungenKybernetik, Kommunikation und Konflikt: Gregory Bateson und (s)eine kybernetische Konflikttheorie Bewertung: 0 von 5 Sternen0 BewertungenGrundlagen und Methoden der Wirtschaftsinformatik: Eine anwendungsorientierte Einführung Bewertung: 0 von 5 Sternen0 BewertungenIT Management: Grundlagen, Organisation, Aufgaben, Outsourcing, Herausforderungen Bewertung: 0 von 5 Sternen0 BewertungenAlles außer Q: Das ABC der systemischen Beratung Bewertung: 0 von 5 Sternen0 BewertungenALS SIE VERSCHWANDEN: DAS VERGESSENE ERBE DER MENSCHHEIT Bewertung: 0 von 5 Sternen0 BewertungenDie KI Bibel, mit künstlicher Intelligenz Geld verdienen: Echte Fallbeispiele und Anleitungen zum Umsetzen Bewertung: 1 von 5 Sternen1/5Nimm den Chor doch selber auf: Crashkurs für das Aufnehmen und Mischen von Chören Bewertung: 0 von 5 Sternen0 BewertungenIT-Servicemanagement (in OWL): Umfrage und aktuelle Trends Bewertung: 0 von 5 Sternen0 BewertungenEinführung ins Darknet: Darknet ABC Bewertung: 0 von 5 Sternen0 BewertungenDigitalisierung und KI in der Logistik - Neue Konzepte, Erfolgsfaktoren und Best Practices: Tagungsband zum 5. Osnabrücker Logistik Forum Bewertung: 0 von 5 Sternen0 BewertungenEinstieg in den Online-Unterricht: Videokonferenzen in der Erwachsenenbildung Bewertung: 0 von 5 Sternen0 BewertungenEinführung in H5P: Interaktive Lerninhalte austauschen, verändern und wiederverwenden Bewertung: 0 von 5 Sternen0 BewertungenPrompt Engineering für die Sekundarstufe 1+2: Ein praxisnaher Leitfaden für Lehrpersonen Bewertung: 0 von 5 Sternen0 Bewertungen
Rezensionen für Docker und die Containerwelt
1 Bewertung0 Rezensionen
Buchvorschau
Docker und die Containerwelt - Mahmoud Reza Rahbar Azad
1 Docker-Grundlagen für .NET-Entwickler
Container und Docker sind in aller Munde. Doch die Einstiegshürde in die Docker-Welt ist nicht ganz niedrig. Was ist Docker genau, wie funktioniert es, welche Probleme löst es eigentlich und wie kann ich es als .NET-Entwickler heute schon einsetzen? All diesen Fragen geht dieses erste Kapitel nach, sodass Sie als .NET-Entwickler das nötige Grundlagenwissen haben und mit Docker richtig durchstarten können.
In den vergangen Jahren ist die Beliebtheit von Docker stetig gestiegen. Applikationen werden in einem Container ausgeführt und können somit auf beliebigen Umgebungen „angedockt" werden. Das klingt ja ganz spannend. Aber warum sollte das einen .NET-Entwickler interessieren, ist das denn überhaupt wichtig für den Entwicklungsalltag? Wieso ist Docker auch für uns eine solche Revolution?
Warum Docker?
Bei Docker geht es primär um das Verteilen von Anwendungen und Diensten, das sogenannte Deployment. Doch wie wurde das eigentlich früher gemacht? Nehmen wir an, ein Entwickler will seine frisch erstellte .NET-Webapplikation einer Kollegin zum lokalen Testen geben. Ganz früher war das noch so, dass die Kollegin zur Installation eine Anleitung mit Voraussetzungen und ggfs. auch manuelle Skripts bekam. Da stand dann z. B. in der Anleitung, dass Windows als Betriebssystem benötigt wird, dass das .NET Framework in einer bestimmten Version installiert sein muss, dass zur Ausführung eine bestimmte Datenbank benötigt wird usw. Es wird also für die Kollegin ein mühsames und aufwendiges Unterfangen, die Webapplikation lokal zum Laufen zu bekommen.
Im Laufe der Jahre hat sich das Ganze vereinfacht, indem man mit virtuellen Maschinen gearbeitet hat – ja, viele Entwickler machen das natürlich auch heute noch. In der virtuellen Maschine wird die .NET-Webapplikation mit allen Abhängigkeiten installiert. Jetzt kann der Entwickler seiner Kollegin einfach die virtuelle Maschine geben, die Kollegin startet sie und hat somit eine lauffähige Applikation, die sie jetzt innerhalb der VM testen kann – ein deutlicher Fortschritt. Doch auch hier gibt es noch einen kleinen Haken: Die eigentliche Anwendung ist in der Praxis meist nur ein paar Megabytes groß, wenn überhaupt. Zur Größe der Anwendung kommen noch ein paar Abhängigkeiten, wie ein Webserver und eine Datenbank. Doch die virtuelle Maschine selbst beinhaltet ja noch das Gastbetriebssystem, und das nimmt üblicherweise gleich mal einige Gigabytes in Anspruch. Dass man der Kollegin die beispielsweise 100 GB große virtuelle Maschine für eine Anwendung geben muss, die mit ihren Abhängigkeiten nur einen Bruchteil dieser Größe hat, ist natürlich nicht ideal. Geht man sogar noch davon aus, dass man verschiedene Applikationen mit unterschiedlichen Abhängigkeiten hat, dann braucht es vielleicht sogar mehrere virtuelle Maschinen, um für jede Applikation eine zu haben. Wer kennt es nicht, dass die Festplattengröße des Entwicklungsrechners da oft ein Problem darstellt. Neben dem Datenvolumen einer VM ist auch das Startverhalten ein Kritikpunkt. Es dauert meist eine kleine Weile, bis das Betriebssystem hochgefahren ist. Doch warum brauche ich eigentlich überhaupt ein zusätzliches Betriebssystem, wenn die Kollegin auf ihrem Rechner doch schon eins hat? Das ist eine sehr gute Frage, und das ist der Punkt, an dem Docker ins Spiel kommt.
Über Images und Container
Mit Docker lassen sich alle Abhängigkeiten einer Anwendung in einem sogenannten Docker Image abbilden. Aus einem Image lässt sich dann eine Instanz erzeugen, die als Container bezeichnet wird. Um eine Applikation mit allen Abhängigkeiten an eine Kollegin zu geben, wird ein Docker Image bereitgestellt. Die Kollegin kann das Docker Image dann in Form eines Containers lokal auf ihrem Rechner ausführen. Doch was ist jetzt genau der Unterschied zwischen einem laufenden Docker-Container und einer laufenden virtuellen Maschine? Der große Unterschied ist, dass der Docker-Container im Gegensatz zur virtuellen Maschine kein eigenes Betriebssystem hat. Anstelle eines Gastsystems, wie bei einer virtuellen Maschine, wird bei einem Docker-Container direkt das Betriebssystem des Hosts genutzt, das sogenannte Host-OS. Abbildung 1.1 verdeutlicht den Unterschied zwischen einer virtuellen Maschine und einem Docker-Container.
Abbildung 1.1: Virtuelle Maschine vs. Docker-Container
Wie Abbildung 1.1 zeigt, benötigt eine virtuelle Maschine den sogenannten Hypervisor, der die Ressourcen des Hosts bereitstellt. Auch ein Docker-Container benötigt etwas Ähnliches, die sogenannte Docker Engine. Die Docker Engine stellt den Zugriff auf den Kernel des Host-Betriebssystems sicher und ist in der Lage, Container zu erstellen, zu starten und zu stoppen. Aufgrund der Tatsache, dass ein Docker Image und somit auch ein daraus erstellter Docker-Container kein eigenes
