Michael Kofler, Bernd Öggl
Docker
Das Praxisbuch für Entwickler und DevOps-Teams. Für Windows, macOS und Linux
Ein Angebot für € 34,49 €
Michael Kofler, Bernd Öggl
Docker
Das Praxisbuch für Entwickler und DevOps-Teams. Für Windows, macOS und Linux
- Gebundenes Buch
- Merkliste
- Auf die Merkliste
- Bewerten Bewerten
- Teilen
- Produkt teilen
- Produkterinnerung
- Produkterinnerung
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: Dieses Buch zeigt Ihnen nicht nur Docker und die Containerwelt, es lässt Sie auch mit dem Troubleshooting und der Orchestrierung nicht alleine. Inkl. Best Practices, umfangreichem Werkzeugkasten und vielen Tipps zur Projektmigration, Container-Sicherheit, Docker ohne Root, Kubernetes, Podman und mehr.
Aus dem Inhalt:
Konzepte und KommandosEigene Docker-ImagesContainer-SicherheitWebserver und…mehr
Andere Kunden interessierten sich auch für
- Peter BrucePraktische Statistik für Data Scientists39,90 €
- Johannes ErnestiPython 344,90 €
- Michael WeigendPython 349,99 €
- Eric A. MeyerCSS - kurz & gut14,90 €
- Christoph HöllerAngular39,90 €
- Wes McKinneyDatenanalyse mit Python44,90 €
- Kevin BeaverHacken für Dummies25,00 €
-
-
-
-
-
-
-
-
-
-
-
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:
Dieses Buch zeigt Ihnen nicht nur Docker und die Containerwelt, es
lässt Sie auch mit dem Troubleshooting und der Orchestrierung nicht
alleine. Inkl. Best Practices, umfangreichem Werkzeugkasten und vielen
Tipps zur Projektmigration, Container-Sicherheit, Docker ohne Root, Kubernetes, Podman und mehr.
Aus dem Inhalt:
Konzepte und KommandosEigene Docker-ImagesContainer-SicherheitWebserver und ToolsDatenbanksystemeProgrammiersprachenWebapplikationen und CMSPraxisbeispiel: Webapplikation, Grafana, Gitlab und mehrAnwendungen migrierenDeploymentContinuous Integration und Continuous DeliveryOrchestrierung mit Swarm und KubernetesDocker in der Cloud: AWS, Azure, Google Cloud
wegzudenken. Ob Sie Entwickler oder Administrator sind, ob Sie gerade
einsteigen oder bereits produktiv mit Software-Containern arbeiten:
Dieses Buch zeigt Ihnen nicht nur Docker und die Containerwelt, es
lässt Sie auch mit dem Troubleshooting und der Orchestrierung nicht
alleine. Inkl. Best Practices, umfangreichem Werkzeugkasten und vielen
Tipps zur Projektmigration, Container-Sicherheit, Docker ohne Root, Kubernetes, Podman und mehr.
Aus dem Inhalt:
Konzepte und KommandosEigene Docker-ImagesContainer-SicherheitWebserver und ToolsDatenbanksystemeProgrammiersprachenWebapplikationen und CMSPraxisbeispiel: Webapplikation, Grafana, Gitlab und mehrAnwendungen migrierenDeploymentContinuous Integration und Continuous DeliveryOrchestrierung mit Swarm und KubernetesDocker in der Cloud: AWS, Azure, Google Cloud
Produktdetails
- Produktdetails
- Verlag: Rheinwerk Verlag
- Artikelnr. des Verlages: 459/08634
- 3., erw. Aufl.
- Seitenzahl: 496
- Erscheinungstermin: 1. September 2021
- Deutsch
- Abmessung: 32mm x 175mm x 246mm
- Gewicht: 1040g
- ISBN-13: 9783836286343
- Artikelnr.: 62103741
- Herstellerkennzeichnung Die Herstellerinformationen sind derzeit nicht verfügbar.
- Verlag: Rheinwerk Verlag
- Artikelnr. des Verlages: 459/08634
- 3., erw. Aufl.
- Seitenzahl: 496
- Erscheinungstermin: 1. September 2021
- Deutsch
- Abmessung: 32mm x 175mm x 246mm
- Gewicht: 1040g
- ISBN-13: 9783836286343
- Artikelnr.: 62103741
- Herstellerkennzeichnung Die Herstellerinformationen sind derzeit nicht verfügbar.
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.
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.
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.
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 ... 491
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 ... 491
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 ... 491
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 ... 491