Skip to main content
E-Book

£17.99

*VAT

Docker für Dummies

Frank Geisler, Benjamin Kettner

ISBN: 978-3-527-82218-8 July 2019 384 Pages

Über die Autoren 9

Einführung 21

Warum ist es wichtig, sich jetzt mit Docker zu beschäftigen? 21

Wer dieses Buch lesen sollte 23

Was Sie nicht lesen müssen 24

Törichte Annahmen über den Leser 24

Wie dieses Buch aufgebaut ist 25

Wie es weitergeht 28

Teil I Einführung in Docker 29

Kapitel 1 Container oder VM? 31

Was genau ist Docker? 31

Docker ist kostenlos – oder? 32

Grundlegende Elemente in Docker 33

Container 35

Images 35

Container-Netzwerke 36

Vergleich Container und virtuelle Maschinen 36

Was genau macht eine Virtualisierungsumgebung? 38

Was ist ein Container? 40

Einsatzgebiete von Docker 41

Verschiedene Ausführungsarten von Docker-Containern 44

Kapitel 2 Das Fenster und der Wal: Docker on Windows 47

Docker unter Windows installieren 48

Docker über die GUI installieren 49

Docker über PowerShell installieren 54

Docker über Chocolatey installieren 57

Der Windows-Container-Dienst und die unterschiedlichen Container-Arten 59

Docker auf Windows-Versionen, die kein Hyper-V besitzen 61

Was ist neu für Container in Windows Server 2019? 70

Kapitel 3 Der Apfel und der Wal: Docker auf dem Mac 71

Docker auf dem Mac installieren 72

Die Docker-Toolbox 78

Nützliche Tools für Docker auf dem Mac 85

Häufige Fehler und deren Lösung 86

Kapitel 4 Der Pinguin und der Wal: Docker on Linux 89

Docker unter CentOS installieren 90

Docker unter Ubuntu installieren 91

Docker unter Arch-Linux installieren 93

Docker ohne Paketverwaltung installieren 93

Es geht auch einfacher: Convenience-Skripte 94

Docker als Nicht-root-user verwenden 95

Kapitel 5 First Contact – eine erste Begegnung mit dem Wal 97

Kapitel 6 Nützliche Tools für die Arbeit mit Docker 105

Tools zum Schreiben und Verwalten von Quellcode 105

Tools für den Betrieb von Containern 106

CI-/CD-Tools, die Docker verwenden 107

Teil II Fortgeschrittene Techniken 109

Kapitel 7 Docker von der Stange: Docker Hub 111

Was ist der Docker Hub? Von Registry und Repositories 112

Ordnung im Chaos: Images im Docker Hub-Repository finden 113

Tags verwenden, um Container zu starten 118

Kapitel 8 Maßgeschneidert: Aufbau eigener Docker-Images 121

Das Format von Dockerfiles 122

Ihr erstes eigenes Dockerfile 124

Eine sinnvollere Anwendung für eigene Dockerfiles 128

Ihr eigenes base image 131

Kapitel 9 Vom Image zur Umgebung: Docker Compose 133

Eine Umgebung definieren: docker-compose.yml 135

Docker Compose mit eigenen Images 137

Umgebungen mit mehreren Containern 138

Ein einfacher Besuchszähler bestehend aus zwei Containern 139

Eine Entwicklungsumgebung für komplexere Webanwendungen 144

Kapitel 10 Netzwerke in Docker 155

Die Docker-Netzwerke 155

Anwendungsisolierung über Docker-Netzwerke 158

Mit den Docker-Netzen spielen 159

Ein komplexeres Beispiel: Poor Man‘s Loadbalancer mit Round Robin 165

Kapitel 11 Docker-Inhalte behalten – Volumes und Bind Mounts 173

Docker-Volumes 174

Bind Mounts 179

Kapitel 12 Eine eigene Docker-Registry aufbauen 183

Docker Hub unter der Lupe 184

Ein Image manuell auf Docker Hub veröffentlichen 185

Docker Hub, Docker Store und Docker Cloud 189

Die lokale Docker-Registry 189

Eine eigene Docker-Registry bauen 192

Etwas mehr Nachhaltigkeit – Docker-Registry mit Bind Mount 197

Registries von Drittanbietern 200

Kapitel 13 Windows-Container und der Windows-Containerdienst 203

Die Windows-Container-Arten 203

Windows-Container unter Windows 10 205

Windows-Container auf Windows Server 2016/2019 211

Kapitel 14 Ab in den Hub 215

Automatisches Erstellen von Images 215

Strategien für automatisierte Builds 218

Teil III Walgesänge in Den Wolken 221

Kapitel 15 Docker, Microservices-Architekturen und Serverless Computing 223

Microservices – was ist das? 224

Wie funktioniert eine Microservices-Architektur? 225

Wie passt das zu Docker? 226

Wegwerf-Infrastruktur 227

Serverless Computing – Server-Anwendungen ohne Server? 227

Was leisten Serverless-Dienste? 228

Wie passt Serverless zu Docker? 231

Kapitel 16 The Sky is the Limit – Docker auf Azure 233

Die Azure-Container-Dienste 235

Einen Container mit Azure Container instances bereitstellen 237

Einen Container über das Azure-Portal bereitstellen 241

Eine private Docker-Registry in Azure aufbauen 245

Einen Kubernetes-Cluster mit Azure Kubernetes Service (AKS) erstellen 250

Kapitel 17 Auch in Gelb: Docker auf AWS 261

Amazon ECS 261

AWS Fargate 264

Amazon ECR 265

Amazon EKS 265

AWS Batch und Docker EE 267

Kapitel 18 Alle können Docker 269

Google Cloud Services 269

IBM Cloud 270

Digital Ocean 270

Sloppy.io 270

Nutzung der Docker Machine 271

Kapitel 19 Docker Swarm 273

Von Managern und Arbeitern 274

Erste Schritte mit Docker Swarm – lokal 276

Ein Swarm-Cluster mit drei Knoten 283

Drei Knoten auf einem einzigen Rechner 284

Den Cluster in play-with-docker.com aufbauen 290

Weitere Swarm-Themen 296

Kapitel 20 Kubernetes 299

Was ist Kubernetes? 299

Komponenten von Kubernetes 300

Objekte in Kubernetes 303

Knoten, Pods und Container 304

Eine Kubernetes-Umgebung aufsetzen 306

Minikube, Ihr Ein-Knoten-Cluster 306

Installation von Minikube 307

Arbeiten mit Minikube 310

Ihre erste Kubernetes-Anwendung 312

Es geht auch einfacher: Testen ohne eigenen Cluster 315

Teil IV Hands on Docker 321

Kapitel 21 Unter Druck – Eine WordPress-Entwicklungsumgebung 323

Die WordPress-Umgebung per Hand aufbauen 323

Die WordPress-Umgebung mit Docker Compose aufbauen 334

Ein verbessertes WordPress-Image 336

Kapitel 22 Interessante Docker-Images 347

Datenbanken 347

Programmiersprachen 348

Webanwendungen 349

Desktop-Anwendungen 349

Kapitel 23 Datenbanken in Containern: MySQL, MariaDB und PostgreSQL 351

MySQL 352

PHPMyAdmin 352

MariaDB 354

PostgreSQL 356

Kapitel 24 Noch mehr Datenbanken in Containern – Der Microsoft SQL Server 359

Einen SQL Server im Container bereitstellen 360

Einen SQL Server im Container upgraden 364

Okay, und warum genau soll ich meine SQL Server im Container laufen lassen? 369

Kapitel 25 Eine DevOps-Pipeline mit Docker 373

Containerisierte Anwendungen 374

Anwendungen, die nicht in Containern laufen 377

Kapitel 26 Es gibt Kuchen, Baby – Docker auf dem Raspberry Pi 381

Docker auf dem Raspberry Pi installieren 382

Fünf Dinge, die Sie im Zusammenhang mit Docker und Raspberry Pi wissen sollten 395

Teil V Der Top-Ten-Teil 399

Kapitel 27 10 Mythen über Docker 401

Docker ist Synonym für Container 401

Docker ist das Allheilmittel 401

Es gibt klare Best Practices für Docker 401

Docker ist billiger als virtuelle Maschinen 402

Container können wie virtuelle Maschinen verwendet werden 402

Docker ist unsicher 402

Sie können nur einen Prozess pro Container starten 402

Sie müssen sich die Parameter für Ihren Run-Befehl merken 403

Docker kann nur aus der Kommandozeile bedient werden 403

Docker passt nicht zu meinem Projekt 403

Kapitel 28 10 Szenarien, in denen Sie Docker hervorragend einsetzen können 405

Jupyter Notebooks 405

Python-Entwicklung 405

Microservices 406

Webentwicklung 406

Experimentieren 406

Cluster 406

Migrationen 406

CI/CD 406

Demo-Umgebungen 407

Sichere Umgebung 407

Kapitel 29 Die 10 (+2) besten Docker-Tools 409

Kubernetes 409

GitHub 409

Portainer 409

Azure Kubernetes Service (AKS) 409

Amazon Elastic Container Service (ECS) 410

Visual Studio Code 410

Logstash 410

CoreOS 410

Jenkins 410

Watchtower 410

Cmdr 411

iTerm2 411

Kapitel 30 Die 10 häufigsten Docker-Fehler 413

port is already allocated 413

repository does not exist or may require 'docker login' 413

container name is already in use 414

No space left 414

You cannot remove a running container 414

unable to remove repository reference 414

Multiple IDs found 415

no matching manifest 415

driver failed programming external connectivity on endpoint 415

error during connect 416

Stichwortverzeichnis 417