Installieren Sie die genialokal App auf Ihrem Startbildschirm für einen schnellen Zugriff und eine komfortable Nutzung.
Tippen Sie einfach auf Teilen:
Und dann auf "Zum Home-Bildschirm [+]".
Bei genialokal.de kaufen Sie online bei Ihrer lokalen, inhabergeführten Buchhandlung!
Software-Container verstehen und produktiv einsetzen 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.- Schritt für Schritt vom Setup bis zur Orchestrierung- Continuous Delivery: Grundlagen, Konzepte und Beispiele- Praxiswissen zu Projekt-Migration, Sicherheit, Kubernetes, Cloud-Setups, Podman, Portainer und mehr Aus dem Inhalt:- Konzepte und Grundlagen- Docker-Kommandos- Eigene Docker-Images- Container-Sicherheit- Webserver und Tools- Datenbanksysteme- Programmiersprachen- Webapplikationen und CMS- Praxisbeispiele: Webapplikation, Grafana, Gitlab und mehr- Anwendungen migrieren- Deployment- Gitlab- Continuous Integration und Continuous Delivery- Orchestrierung mit Swarm und Kubernetes- Docker in der Cloud: AWS, Azure, Google Cloud
Michael Kofler hat Telematik an der TU Graz studiert und ist einer der erfolgreichsten deutschsprachigen IT-Fachbuchautoren. Zu seinen Themengebieten zählen neben Linux auch IT-Sicherheit, Python, Swift, Java und der Raspberry Pi. Er ist Entwickler, berät Firmen undarbeitet als Lehrbeauftragter.
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