Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Vorwort
11
TEIL I Einführung
15
1 Hello World
17
1.1 Docker-Schnellinstallation
17
1.2 Apache mit PHP 8
18
1.3 Node.js
21
1.4 Python
24
1.5 Fazit
25
2 Installation
27
2.1 Viele Wege führen zum Ziel
27
2.2 Docker-Installation unter Windows
32
2.3 Docker-Installation unter macOS
34
2.4 Docker-Installation unter Linux
35
2.5 Rootless Docker
39
2.6 Docker Desktop unter Linux
44
2.7 Podman installieren
46
3 Grundlagen
49
3.1 Grundlagen und Nomenklatur
49
3.2 Container ausführen
55
3.3 Container interaktiv verwenden
57
3.4 Portweiterleitung
66
3.5 Datenspeicherung in Volumes
69
3.6 Volumes mit Namen
76
3.7 Volumes in eigenen Verzeichnissen
77
3.8 Kommunikation zwischen mehreren Containern
79
3.9 Administration
86
4 Eigene Images
93
4.1 Hello, Dockerfile!
94
4.2 Dockerfile-Syntax
97
4.3 Ein eigenes Webserver-Image
104
4.4 Images in den Docker Hub hochladen
106
4.5 Multi-Arch-Images
110
4.6 Beispiel: Pandoc- und LaTeX-Umgebung als Image einrichten
113
5 Container-Setups mit »compose«
117
5.1 YAML-Syntax
119
5.2 Hello Compose!
121
5.3 Die Datei compose.yaml
124
5.4 Ports und Netzwerke
132
5.5 Passwörter und andere Geheimnisse
138
5.6 Neue Projekte einrichten (docker init)
140
6 Tipps, Tricks und Interna
143
6.1 Docker Desktop und Podman Desktop
144
6.2 Visual Studio Code
146
6.3 Portainer
150
6.4 Pull-Limit im Docker Hub
151
6.5 Unterschiedliche CPU-Architekturen nutzen
156
6.6 Container automatisch starten
158
6.7 Windows mit dockur ausführen
163
6.8 Docker-Interna
167
6.9 Podman-Interna
182
6.10 Toolbx
192
7 Kommandoreferenz
199
TEIL II Werkzeugkasten
223
8 Alpine Linux
225
8.1 Merkmale
227
8.2 Paketverwaltung mit apk
230
9 Webserver und Co.
235
9.1 Apache HTTP Server
236
9.2 Nginx
241
9.3 Nginx als Reverse Proxy mit SSL-Zertifikaten von Let's Encrypt
244
9.4 Caddy
252
9.5 Node.js mit Express
255
9.6 HAProxy
259
9.7 Traefik-Proxy
261
10 Datenbanksysteme
267
10.1 MySQL und MariaDB
267
10.2 PostgreSQL
274
10.3 MongoDB
278
10.4 Redis
286
11 Programmiersprachen
289
11.1 JavaScript (Node.js)
289
11.2 Java
293
11.3 PHP
296
11.4 Ruby
302
11.5 Python
303
11.6 Go
310
12 Webapplikationen und CMS
319
12.1 WordPress
319
12.2 Nextcloud
328
12.3 Joomla
331
TEIL III Praxis
333
13 Eine moderne Webapplikation
335
13.1 Die Anwendung
335
13.2 Das Frontend – Vue.js
338
13.3 Der API-Server – Node.js Express
348
13.4 Die MongoDB-Datenbank
359
13.5 Der Sessionspeicher – Redis
364
14 Grafana
365
14.1 Grafana-Docker-Setup
366
14.2 Provisioning
376
14.3 Ein angepasstes Telegraf-Image
379
15 Prometheus
385
15.1 Grundlagen und Setup-Überblick
385
15.2 Den Node Exporter installieren
388
15.3 Docker-Setup für Traefik, Grafana und Prometheus
392
15.4 Prometheus-Weboberfläche
399
15.5 Grafana-Weboberfläche
401
15.6 Automatische Benachrichtigungen (Alerts)
403
15.7 Monitoring für Webserver (Blackbox Exporter)
407
16 Modernisierung einer traditionellen Applikation
411
16.1 Die bestehende Applikation
412
16.2 Planung und Vorbereitung
414
16.3 Die Entwicklungsumgebung
428
16.4 Produktivumgebung und Migration
429
16.5 Updates
432
16.6 Tipps für die Umstellung
433
16.7 Fazit
434
17 GitLab
435
17.1 GitLab-Schnellstart
437
17.2 GitLab-Webinstallation
438
17.3 HTTPS über ein Reverse-Proxy-Setup
440
17.4 E-Mail-Versand
441
17.5 SSH-Zugriff
444
17.6 Volumes und Backup
445
17.7 Eigene Docker-Registry für GitLab
447
17.8 Die vollständige compose-Datei
449
17.9 GitLab verwenden
451
17.10 GitLab-Runner
455
17.11 Mattermost
458
18 Continuous Integration und Continuous Delivery
465
18.1 Die Website dockerbuch.info mit gohugo.io
466
18.2 Docker-Images für die CI/CD-Pipeline
471
18.3 Die CI/CD-Pipeline
474
19 Sicherheit
485
19.1 Softwareinstallation
486
19.2 Herkunft der Docker-Images
487
19.3 »root« in Docker-Images
489
19.4 Der Docker-Dämon
491
19.5 User Namespaces
492
19.6 cgroups
495
19.7 Secure Computing Mode
496
19.8 AppArmor-Sicherheitsprofile
497
20 Swarm
499
20.1 Docker Swarm
501
20.2 Docker Swarm in der Hetzner-Cloud
505
21 Kubernetes
517
21.1 Minikube
518
21.2 Amazon EKS (Elastic Kubernetes Service)
531
21.3 Microsoft AKS (Azure Kubernetes Service)
535
21.4 Google Kubernetes Engine
543
22 Künstliche Intelligenz
555
22.1 Der Docker Model Runner (DMR)
555
22.2 DMR-Beispiel 1: SQL-Abfragen von der KI
557
22.3 DMR-Beispiel 2: KI-Zugriff auf GitLab
565
22.4 Der Docker-MCP-Katalog
570
22.5 Fazit
577
Index
579