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


Praxiswissen zur Projekt-Migration, Sicherheit, KI-Modelle, Kubernetes, Cloud-Setups, Podman

Autorentext
Bernd Öggl ist ein erfahrener Systemadministrator und Webentwickler. Bereits seit 2001 erstellt er für Kunden Websites, setzt individuelle Entwicklerprojekte um und gibt sein Wissen auf Konferenzen und in Publikationen weiter.

Inhalt


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 .…

Titel
Docker
Untertitel
Das Praxisbuch für Entwickler und DevOps-Teams
EAN
9783367114979
Format
E-Book (pdf)
Hersteller
Digitaler Kopierschutz
frei
Dateigrösse
31 MB
Anzahl Seiten
585
Lesemotiv