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 Installation unter Windows
29
2.2 Installation unter macOS
31
2.3 Installation unter Linux
32
2.4 Rootless Docker
36
3 Grundlagen
43
3.1 Grundlagen und Nomenklatur
43
3.2 Container ausführen
49
3.3 Container interaktiv verwenden
51
3.4 Portweiterleitung
58
3.5 Datenspeicherung in Volumes
61
3.6 Volumes mit Namen
67
3.7 Volumes in eigenen Verzeichnissen
69
3.8 Kommunikation zwischen Containern
71
3.9 Docker administrieren
77
4 Eigene Docker-Images (Dockerfiles)
81
4.1 Dockerfiles
81
4.2 Ein eigenes Webserver-Image
89
4.3 Images in den Docker Hub hochladen
92
4.4 Pandoc- und LaTeX-Umgebung als Image einrichten
95
5 docker compose
99
5.1 Installation von docker-compose
101
5.2 YAML-Syntax
102
5.3 Hello Compose!
103
5.4 Die Datei docker-compose.yml
109
5.5 Passwörter und andere Geheimnisse
116
6 Tipps, Tricks und Interna
119
6.1 Visual Studio Code
120
6.2 Portainer
123
6.3 Pull-Limit im Docker Hub
125
6.4 Unterschiedliche CPU-Architekturen nutzen
130
6.5 Container automatisch starten
134
6.6 Ein Blick hinter die Kulissen
139
7 docker-Kommandoreferenz
151
TEIL II Werkzeugkasten
173
8 Alpine Linux
175
8.1 Merkmale
176
8.2 Paketverwaltung mit apk
179
9 Webserver und Co.protect kern +.1667emrelax
183
9.1 Apache HTTP Server
183
9.2 Nginx
189
9.3 Nginx als Reverse Proxy mit SSL-Zertifikaten von Let's Encrypt
192
9.4 Node.js mit Express
200
9.5 HAProxy
205
9.6 Traefik Proxy
207
10 Datenbanksysteme
213
10.1 MySQL und MariaDB
213
10.2 PostgreSQL
219
10.3 MongoDB
224
10.4 Redis
231
11 Programmiersprachen
235
11.1 JavaScript (Node.js)
235
11.2 Java
239
11.3 PHP
242
11.4 Ruby
249
11.5 Python
251
12 Webapplikationen und CMS
259
12.1 WordPress
259
12.2 Nextcloud
267
12.3 Joomla
270
TEIL III Praxis
273
13 Eine moderne Webapplikation
275
13.1 Die Anwendung
276
13.2 Das Frontend – Vue.js
278
13.3 Der API-Server – Node.js Express
289
13.4 Die Mongo-Datenbank
299
13.5 Der Session-Speicher – Redis
303
14 Grafana
305
14.1 Grafana-Docker-Setup
306
14.2 Provisioning
315
14.3 Ein angepasstes Telegraf-Image
318
15 Modernisierung einer traditionellen Applikation
323
15.1 Die bestehende Applikation
324
15.2 Planung und Vorbereitung
326
15.3 Die Entwicklungsumgebung
340
15.4 Produktivumgebung und Migration
341
15.5 Updates
344
15.6 Tipps zur Umstellung
345
15.7 Fazit
346
16 GitLab
347
16.1 GitLab-Schnellstart
349
16.2 GitLab-Webinstallation
350
16.3 HTTPS über ein Reverse-Proxy-Setup
352
16.4 E-Mail-Versand
353
16.5 SSH-Zugriff
356
16.6 Volumes und Backup
357
16.7 Eigene Docker-Registry für GitLab
360
16.8 Die vollständige docker-compose-Datei
361
16.9 GitLab verwenden
363
16.10 GitLab Runner
367
16.11 Mattermost
374
17 Continuous Integration und Continuous Delivery
379
17.1 Die Website dockerbuch.info mit gohugo.io
380
17.2 Docker-Images für die CI/CD-Pipeline
385
17.3 Die CI/CD-Pipeline
388
18 Sicherheit
401
18.1 Softwareinstallation
401
18.2 Herkunft der Docker-Images
403
18.3 »root« in Docker-Images
405
18.4 Der Docker-Dämon
408
18.5 User Namespaces
409
18.6 cgroups
411
18.7 Secure Computing Mode
413
18.8 AppArmor-Sicherheitsprofile
413
19 Swarm und Amazon ECS
417
19.1 Docker Swarm
419
19.2 Docker Swarm in der Hetzner-Cloud
424
19.3 Amazon Elastic Container Service
435
20 Kubernetes
441
20.1 Minikube
442
20.2 Amazon EKS (Elastic Kubernetes Service)
454
20.3 Microsoft AKS (Azure Kubernetes Service)
458
20.4 Google Kubernetes Engine
467
A Docker-Alternative Podman
477
Index
493