Zum Hauptinhalt springen
Dekorationsartikel gehören nicht zum Leistungsumfang.
Docker
Practical Guide for Developers and DevOps Teams
Taschenbuch von Bernd Öggl (u. a.)
Sprache: Englisch

46,95 €*

inkl. MwSt.

Versandkostenfrei per Post / DHL

Lieferzeit 2-3 Wochen

Kategorien:
Beschreibung

Learn the ins and outs of containerization in Docker with this practical guide! Begin by installing and setting up the platform. Then master the basics: get to know important terminology, understand how to run containers, and set up port redirecting and communication. You'll learn to create custom images, work with commands, and use key containerization tools. Gain essential skills by following exercises that cover common tasks from packaging new applications and modernizing existing applications to handling security and operations.

1) Installation and configuration
2) Dockerfiles
3) Docker commands
4) Rootless Docker
5) Project migration
6) GitLab
7) Grafana
8) Kubernetes
9) Container security
10) Continuous integration and delivery (CI/CD)
11) Docker images: servers, databases, programming languages, and web applications

Learn the ins and outs of containerization in Docker with this practical guide! Begin by installing and setting up the platform. Then master the basics: get to know important terminology, understand how to run containers, and set up port redirecting and communication. You'll learn to create custom images, work with commands, and use key containerization tools. Gain essential skills by following exercises that cover common tasks from packaging new applications and modernizing existing applications to handling security and operations.

1) Installation and configuration
2) Dockerfiles
3) Docker commands
4) Rootless Docker
5) Project migration
6) GitLab
7) Grafana
8) Kubernetes
9) Container security
10) Continuous integration and delivery (CI/CD)
11) Docker images: servers, databases, programming languages, and web applications

Zusammenfassung
Consult and download practical code examples
Inhaltsverzeichnis
... Preface ... 21

... Docker ... 21

... About This Book ... 22

... Brave New Docker World ... 23

PART I ... Introduction ... 25

1 ... Hello World ... 27

1.1 ... Docker Quick Install ... 27

1.2 ... Apache with PHP 8 ... 28

1.3 ... Node.js ... 31

1.4 ... Python ... 33

2 ... Installation ... 37

2.1 ... Docker Variants ... 37

2.2 ... Version Numbers ... 38

2.3 ... Installation on Windows ... 38

2.4 ... Installation on macOS ... 40

2.5 ... Installation on Linux ... 41

2.6 ... Rootless Docker ... 46

3 ... Basic Principles ... 51

3.1 ... Basic Principles and Terminology ... 51

3.2 ... Running Containers ... 56

3.3 ... Using Containers Interactively ... 58

3.4 ... Port Redirection ... 64

3.5 ... Data Storage in Volumes ... 67

3.6 ... Named Volumes ... 73

3.7 ... Volumes in Custom Directories ... 75

3.8 ... Communication between Containers ... 77

3.9 ... Administration of Docker ... 83

4 ... Custom Docker Images (Dockerfiles) ... 87

4.1 ... Dockerfiles ... 87

4.2 ... A Custom Web Server Image ... 95

4.3 ... Uploading Images to Docker Hub ... 97

4.4 ... Setting Up a Pandoc and LaTeX Environment as an Image ... 100

5 ... docker compose ... 105

5.1 ... docker-compose versus docker stack ... 105

5.2 ... Installing "docker-compose" ... 106

5.3 ... YAML Ain't Markup Language Syntax ... 107

5.4 ... Hello Compose! ... 109

5.5 ... The docker-compose.yml File ... 114

5.6 ... Passwords and Other Secrets ... 120

6 ... Tips, Tricks, and Internal Details ... 123

6.1 ... Visual Studio Code ... 123

6.2 ... Portainer ... 126

6.3 ... Pull Limit in Docker Hub ... 128

6.4 ... Using Different CPU Architectures ... 133

6.5 ... Starting Containers Automatically ... 137

6.6 ... A Look Behind the Scenes ... 142

7 ... docker Command Reference ... 153

7.1 ... docker attach ... 155

7.2 ... docker build ... 155

7.3 ... docker commit ... 155

7.4 ... docker compose * ... 156

7.5 ... docker-compose config ... 156

7.6 ... docker-compose down ... 156

7.7 ... docker-compose events ... 156

7.8 ... docker-compose kill ... 156

7.9 ... docker-compose logs ... 157

7.10 ... docker-compose pause and docker compose unpause ... 157

7.11 ... docker-compose ps ... 157

7.12 ... docker-compose rm ... 157

7.13 ... docker-compose run ... 157

7.14 ... docker-compose start, docker-compose stop, and docker compose restart ... 158

7.15 ... docker-compose top ... 158

7.16 ... docker-compose up ... 158

7.17 ... docker container * ... 159

7.18 ... docker create ... 159

7.19 ... docker diff ... 159

7.20 ... docker events ... 160

7.21 ... docker exec ... 160

7.22 ... docker export ... 160

7.23 ... docker image * ... 160

7.24 ... docker images ... 161

7.25 ... docker import ... 161

7.26 ... docker info ... 161

7.27 ... docker inspect ... 162

7.28 ... docker kill ... 163

7.29 ... docker login and docker logout ... 163

7.30 ... docker logs ... 163

7.31 ... docker network * ... 164

7.32 ... docker node * ... 165

7.33 ... "docker pause" and "docker unpause" ... 165

7.34 ... "docker port" ... 165

7.35 ... docker ps ... 166

7.36 ... docker pull ... 166

7.37 ... docker push ... 167

7.38 ... docker rename ... 167

7.39 ... docker restart ... 167

7.40 ... docker rm and docker rmi ... 167

7.41 ... docker run ... 168

7.42 ... docker secret * ... 169

7.43 ... docker service * ... 170

7.44 ... docker stack * ... 170

7.45 ... docker start and docker stop ... 171

7.46 ... docker stats ... 171

7.47 ... docker swarm * ... 172

7.48 ... docker system * ... 172

7.49 ... docker tag ... 173

7.50 ... docker top ... 173

7.51 ... docker update ... 173

7.52 ... docker volume * ... 174

7.53 ... docker wait ... 174

PART II ... Toolbox ... 175

8 ... Alpine Linux ... 177

8.1 ... Characteristics ... 177

8.2 ... Package Management with "apk" ... 181

9 ... Web Servers and Company ... 185

9.1 ... Apache HTTP Server ... 185

9.2 ... Nginx ... 191

9.3 ... Nginx as Reverse Proxy with SSL Certificates from Let's Encrypt ... 193

9.4 ... Node.js with Express ... 201

9.5 ... HAProxy ... 205

9.6 ... Traefik Proxy ... 207

10 ... Database Systems ... 213

10.1 ... MySQL and MariaDB ... 213

10.2 ... PostgreSQL ... 219

10.3 ... MongoDB ... 223

10.4 ... Redis ... 230

11 ... Programming Languages ... 233

11.1 ... JavaScript (Node.js) ... 233

11.2 ... Java ... 236

11.3 ... PHP: Hypertext Preprocessor ... 240

11.4 ... Ruby ... 247

11.5 ... Python ... 248

12 ... Web Applications and Content Management Systems ... 255

12.1 ... WordPress ... 255

12.2 ... Nextcloud ... 263

12.3 ... Joomla ... 266

PART III ... Exercises ... 269

13 ... A Modern Web Application ... 271

13.1 ... The Application ... 272

13.2 ... The Frontend: Vue.js ... 274

13.3 ... The API Server: Node.js Express ... 284

13.4 ... The Mongo Database ... 294

13.5 ... The Session Storage: Redis ... 298

14 ... Grafana ... 301

14.1 ... Grafana-Docker Setup ... 301

14.2 ... Provisioning ... 310

14.3 ... A Customized Telegraf Image ... 313

15 ... Modernizing a Traditional Application ... 319

15.1 ... The Existing Application ... 320

15.2 ... Planning and Preparation ... 322

15.3 ... The Development Environment ... 335

15.4 ... Production Environment and Migration ... 337

15.5 ... Updates ... 339

15.6 ... Tips for the Transition ... 340

15.7 ... Results ... 341

16 ... GitLab ... 343

16.1 ... GitLab Quick Start ... 344

16.2 ... GitLab Web Installation ... 346

16.3 ... HTTPS via a Reverse Proxy Setup ... 348

16.4 ... Email Dispatch ... 348

16.5 ... Secure Shell Access ... 352

16.6 ... Volumes and Backup ... 352

16.7 ... Custom Docker Registry for GitLab ... 355

16.8 ... The Complete docker-compose File ... 356

16.9 ... Using GitLab ... 358

16.10 ... GitLab Runner ... 362

16.11 ... Mattermost ... 369

17 ... Continuous Integration and Continuous Delivery ... 375

17.1 ... The dockerbuch.info Website with gohugo.io ... 376

17.2 ... Docker Images for the CI/CD Pipeline ... 380

17.3 ... The CI/CD Pipeline ... 384

18 ... Security ... 397

18.1 ... Software Installation ... 397

18.2 ... Origin of Docker Images ... 398

18.3 ... "root" in Docker Images ... 401

18.4 ... The Docker Daemon ... 403

18.5 ... User Namespaces ... 404

18.6 ... Control Groups ... 406

18.7 ... Secure Computing Mode ... 408

18.8 ... AppArmor Security Profiles ... 408

19 ... Swarm and Amazon Elastic Container Service ... 411

19.1 ... Swarm versus Kubernetes ... 411

19.2 ... Docker Swarm ... 412

19.3 ... Docker Swarm in the Hetzner Cloud ... 417

19.4 ... Amazon Elastic Container Service ... 428

20 ... Kubernetes ... 435

20.1 ... Minikube ... 436

20.2 ... Amazon Elastic Kubernetes Service ... 447

20.3 ... Microsoft Azure Kubernetes Service ... 452

20.4 ... Google Kubernetes Engine ... 461

... Appendices ... 471

A ... Podman as a Docker Alternative ... 471

B ... The Authors ... 483

... Index ... 485
Details
Erscheinungsjahr: 2023
Genre: Informatik
Rubrik: Naturwissenschaften & Technik
Medium: Taschenbuch
Reihe: Rheinwerk Computing
Inhalt: 491 S.
ISBN-13: 9781493223831
ISBN-10: 1493223836
Sprache: Englisch
Herstellernummer: 459/22383
Einband: Klappenbroschur
Autor: Öggl, Bernd
Kofler, Michael
Hersteller: Rheinwerk Verlag GmbH
Rheinwerk Publishing Inc.
Maße: 253 x 178 x 29 mm
Von/Mit: Bernd Öggl (u. a.)
Erscheinungsdatum: 03.06.2023
Gewicht: 1,022 kg
Artikel-ID: 125624914
Zusammenfassung
Consult and download practical code examples
Inhaltsverzeichnis
... Preface ... 21

... Docker ... 21

... About This Book ... 22

... Brave New Docker World ... 23

PART I ... Introduction ... 25

1 ... Hello World ... 27

1.1 ... Docker Quick Install ... 27

1.2 ... Apache with PHP 8 ... 28

1.3 ... Node.js ... 31

1.4 ... Python ... 33

2 ... Installation ... 37

2.1 ... Docker Variants ... 37

2.2 ... Version Numbers ... 38

2.3 ... Installation on Windows ... 38

2.4 ... Installation on macOS ... 40

2.5 ... Installation on Linux ... 41

2.6 ... Rootless Docker ... 46

3 ... Basic Principles ... 51

3.1 ... Basic Principles and Terminology ... 51

3.2 ... Running Containers ... 56

3.3 ... Using Containers Interactively ... 58

3.4 ... Port Redirection ... 64

3.5 ... Data Storage in Volumes ... 67

3.6 ... Named Volumes ... 73

3.7 ... Volumes in Custom Directories ... 75

3.8 ... Communication between Containers ... 77

3.9 ... Administration of Docker ... 83

4 ... Custom Docker Images (Dockerfiles) ... 87

4.1 ... Dockerfiles ... 87

4.2 ... A Custom Web Server Image ... 95

4.3 ... Uploading Images to Docker Hub ... 97

4.4 ... Setting Up a Pandoc and LaTeX Environment as an Image ... 100

5 ... docker compose ... 105

5.1 ... docker-compose versus docker stack ... 105

5.2 ... Installing "docker-compose" ... 106

5.3 ... YAML Ain't Markup Language Syntax ... 107

5.4 ... Hello Compose! ... 109

5.5 ... The docker-compose.yml File ... 114

5.6 ... Passwords and Other Secrets ... 120

6 ... Tips, Tricks, and Internal Details ... 123

6.1 ... Visual Studio Code ... 123

6.2 ... Portainer ... 126

6.3 ... Pull Limit in Docker Hub ... 128

6.4 ... Using Different CPU Architectures ... 133

6.5 ... Starting Containers Automatically ... 137

6.6 ... A Look Behind the Scenes ... 142

7 ... docker Command Reference ... 153

7.1 ... docker attach ... 155

7.2 ... docker build ... 155

7.3 ... docker commit ... 155

7.4 ... docker compose * ... 156

7.5 ... docker-compose config ... 156

7.6 ... docker-compose down ... 156

7.7 ... docker-compose events ... 156

7.8 ... docker-compose kill ... 156

7.9 ... docker-compose logs ... 157

7.10 ... docker-compose pause and docker compose unpause ... 157

7.11 ... docker-compose ps ... 157

7.12 ... docker-compose rm ... 157

7.13 ... docker-compose run ... 157

7.14 ... docker-compose start, docker-compose stop, and docker compose restart ... 158

7.15 ... docker-compose top ... 158

7.16 ... docker-compose up ... 158

7.17 ... docker container * ... 159

7.18 ... docker create ... 159

7.19 ... docker diff ... 159

7.20 ... docker events ... 160

7.21 ... docker exec ... 160

7.22 ... docker export ... 160

7.23 ... docker image * ... 160

7.24 ... docker images ... 161

7.25 ... docker import ... 161

7.26 ... docker info ... 161

7.27 ... docker inspect ... 162

7.28 ... docker kill ... 163

7.29 ... docker login and docker logout ... 163

7.30 ... docker logs ... 163

7.31 ... docker network * ... 164

7.32 ... docker node * ... 165

7.33 ... "docker pause" and "docker unpause" ... 165

7.34 ... "docker port" ... 165

7.35 ... docker ps ... 166

7.36 ... docker pull ... 166

7.37 ... docker push ... 167

7.38 ... docker rename ... 167

7.39 ... docker restart ... 167

7.40 ... docker rm and docker rmi ... 167

7.41 ... docker run ... 168

7.42 ... docker secret * ... 169

7.43 ... docker service * ... 170

7.44 ... docker stack * ... 170

7.45 ... docker start and docker stop ... 171

7.46 ... docker stats ... 171

7.47 ... docker swarm * ... 172

7.48 ... docker system * ... 172

7.49 ... docker tag ... 173

7.50 ... docker top ... 173

7.51 ... docker update ... 173

7.52 ... docker volume * ... 174

7.53 ... docker wait ... 174

PART II ... Toolbox ... 175

8 ... Alpine Linux ... 177

8.1 ... Characteristics ... 177

8.2 ... Package Management with "apk" ... 181

9 ... Web Servers and Company ... 185

9.1 ... Apache HTTP Server ... 185

9.2 ... Nginx ... 191

9.3 ... Nginx as Reverse Proxy with SSL Certificates from Let's Encrypt ... 193

9.4 ... Node.js with Express ... 201

9.5 ... HAProxy ... 205

9.6 ... Traefik Proxy ... 207

10 ... Database Systems ... 213

10.1 ... MySQL and MariaDB ... 213

10.2 ... PostgreSQL ... 219

10.3 ... MongoDB ... 223

10.4 ... Redis ... 230

11 ... Programming Languages ... 233

11.1 ... JavaScript (Node.js) ... 233

11.2 ... Java ... 236

11.3 ... PHP: Hypertext Preprocessor ... 240

11.4 ... Ruby ... 247

11.5 ... Python ... 248

12 ... Web Applications and Content Management Systems ... 255

12.1 ... WordPress ... 255

12.2 ... Nextcloud ... 263

12.3 ... Joomla ... 266

PART III ... Exercises ... 269

13 ... A Modern Web Application ... 271

13.1 ... The Application ... 272

13.2 ... The Frontend: Vue.js ... 274

13.3 ... The API Server: Node.js Express ... 284

13.4 ... The Mongo Database ... 294

13.5 ... The Session Storage: Redis ... 298

14 ... Grafana ... 301

14.1 ... Grafana-Docker Setup ... 301

14.2 ... Provisioning ... 310

14.3 ... A Customized Telegraf Image ... 313

15 ... Modernizing a Traditional Application ... 319

15.1 ... The Existing Application ... 320

15.2 ... Planning and Preparation ... 322

15.3 ... The Development Environment ... 335

15.4 ... Production Environment and Migration ... 337

15.5 ... Updates ... 339

15.6 ... Tips for the Transition ... 340

15.7 ... Results ... 341

16 ... GitLab ... 343

16.1 ... GitLab Quick Start ... 344

16.2 ... GitLab Web Installation ... 346

16.3 ... HTTPS via a Reverse Proxy Setup ... 348

16.4 ... Email Dispatch ... 348

16.5 ... Secure Shell Access ... 352

16.6 ... Volumes and Backup ... 352

16.7 ... Custom Docker Registry for GitLab ... 355

16.8 ... The Complete docker-compose File ... 356

16.9 ... Using GitLab ... 358

16.10 ... GitLab Runner ... 362

16.11 ... Mattermost ... 369

17 ... Continuous Integration and Continuous Delivery ... 375

17.1 ... The dockerbuch.info Website with gohugo.io ... 376

17.2 ... Docker Images for the CI/CD Pipeline ... 380

17.3 ... The CI/CD Pipeline ... 384

18 ... Security ... 397

18.1 ... Software Installation ... 397

18.2 ... Origin of Docker Images ... 398

18.3 ... "root" in Docker Images ... 401

18.4 ... The Docker Daemon ... 403

18.5 ... User Namespaces ... 404

18.6 ... Control Groups ... 406

18.7 ... Secure Computing Mode ... 408

18.8 ... AppArmor Security Profiles ... 408

19 ... Swarm and Amazon Elastic Container Service ... 411

19.1 ... Swarm versus Kubernetes ... 411

19.2 ... Docker Swarm ... 412

19.3 ... Docker Swarm in the Hetzner Cloud ... 417

19.4 ... Amazon Elastic Container Service ... 428

20 ... Kubernetes ... 435

20.1 ... Minikube ... 436

20.2 ... Amazon Elastic Kubernetes Service ... 447

20.3 ... Microsoft Azure Kubernetes Service ... 452

20.4 ... Google Kubernetes Engine ... 461

... Appendices ... 471

A ... Podman as a Docker Alternative ... 471

B ... The Authors ... 483

... Index ... 485
Details
Erscheinungsjahr: 2023
Genre: Informatik
Rubrik: Naturwissenschaften & Technik
Medium: Taschenbuch
Reihe: Rheinwerk Computing
Inhalt: 491 S.
ISBN-13: 9781493223831
ISBN-10: 1493223836
Sprache: Englisch
Herstellernummer: 459/22383
Einband: Klappenbroschur
Autor: Öggl, Bernd
Kofler, Michael
Hersteller: Rheinwerk Verlag GmbH
Rheinwerk Publishing Inc.
Maße: 253 x 178 x 29 mm
Von/Mit: Bernd Öggl (u. a.)
Erscheinungsdatum: 03.06.2023
Gewicht: 1,022 kg
Artikel-ID: 125624914
Warnhinweis

Ähnliche Produkte

Ähnliche Produkte