
Docker ist aus der modernen Softwareentwicklung nicht mehr wegzudenken. Ob Sie Entwickler oder Administrator sind, ob Sie gerade einsteigen oder bereits produktiv mit Software-Containern arbeiten: In diesem Buch zeigen Ihnen Michael Kofler und Bernd Öggl Docker und die Containerwelt. Dabei lassen die Autoren Sie auch bei Troubleshooting und Orchestrierung nicht alleine. Inklusive Best Practices, umfangreichem Werkzeugkasten und vielen Tipps zu Projektmigration, Container-Sicherheit, Docker ohne Root, Kubernetes, Podman, Docker Desktop und mehr.
Aus dem Inhalt:
Inhaltsverzeichnis
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
Es wurden noch keine Bewertungen abgegeben. Schreiben Sie die erste Bewertung zu "Docker" und helfen Sie damit anderen bei der Kaufentscheidung.