My Account Log in

2 options

The ultimate Docker container book : build, test, ship, and run containers with Docker and Kubernetes / Gabriel N. Schenker.

EBSCOhost Academic eBook Collection (North America) Available online

View online

O'Reilly Online Learning: Academic/Public Library Edition Available online

View online
Format:
Book
Author/Creator:
Schenker, Gabriel N., author.
Language:
English
Subjects (All):
Application software--Development.
Application software.
Cloud computing.
Physical Description:
1 online resource (626 pages)
Edition:
Third edition.
Place of Publication:
Birmingham, England : Packt Publishing Ltd., [2023]
System Details:
Mode of access: World Wide Web.
Biography/History:
Schenker Dr. Gabriel N. : Dr. Gabriel N. Schenker has more than 25 years of experience as an independent consultant, architect, leader, trainer, mentor, and developer. Currently, Gabriel works as Lead Solution Architect at Techgroup Switzerland. Prior to that, Gabriel worked as Lead Curriculum Developer at Docker and at Confluent. Gabriel has a Ph. D. in Physics, and he is a Docker Captain, a Certified Docker Associate, a Certified Kafka Developer and Operator, and an ASP Insider. When not working, Gabriel enjoys time with his wonderful wife Veronicah and his children.
Summary:
The Ultimate Docker Container Book, 3rd edition enables you to leverage Docker containers for streamlined software development. You’ll uncover Docker fundamentals and how containers improve software supply chain efficiency and enhance security. You’ll start by learning practical skills such as setting up Docker environments, handling stateful components, running and testing code within containers, and managing Docker images. You’ll also explore how to adapt legacy applications for containerization and understand distributed application architecture. Next, you’ll delve into Docker's networking model, software-defined networks for secure applications, and Docker compose for managing multi-service applications along with tools for log analysis and metrics. You’ll further deepen your understanding of popular orchestrators like Kubernetes and Docker swarmkit, exploring their key concepts, and deployment strategies for resilient applications. In the final sections, you’ll gain insights into deploying containerized applications on major cloud platforms, including Azure, AWS, and GCE and discover techniques for production monitoring and troubleshooting. By the end of this book, you’ll be well-equipped to manage and scale containerized applications effectively.
Contents:
Cover
Title Page
Copyright and Credits
Contributors
Table of Contents
Preface
Part 1:Introduction
Chapter 1: What Are Containers and Why Should I Use Them?
What are containers?
Why are containers important?
What is the benefit of using containers for me or for my company?
The Moby project
Docker products
Docker Desktop
Docker Hub
Docker Enterprise Edition
Container architecture
Summary
Further reading
Questions
Answers
Chapter 2: Setting Up a Working Environment
Technical requirements
The Linux command shell
PowerShell for Windows
Installing and using a package manager
Installing Homebrew on macOS
Installing Chocolatey on Windows
Installing Git and cloning the code repository
Choosing and installing a code editor
Installing VS Code on macOS
Installing VS Code on Windows
Installing VS Code on Linux
Installing VS Code extensions
Installing Docker Desktop on macOS or Windows
Testing Docker Engine
Testing Docker Desktop
Installing Docker Toolbox
Enabling Kubernetes on Docker Desktop
Installing minikube
Installing minikube on Linux, macOS, and Windows
Testing minikube and kubectl
Working with a multi-node minikube cluster
Installing Kind
Testing Kind
Part 2:Containerization Fundamentals
Chapter 3: Mastering Containers
Running the first container
Starting, stopping, and removing containers
Running a random trivia question container
Listing containers
Stopping and starting containers
Removing containers
Inspecting containers
Exec into a running container
Attaching to a running container
Retrieving container logs
Logging drivers
Using a container-specific logging driver.
Advanced topic - changing the default logging driver
The anatomy of containers
Architecture
Namespaces
Control groups
Union filesystem
Container plumbing
Chapter 4: Creating and Managing Container Images
What are images?
The layered filesystem
The writable container layer
Copy-on-write
Graph drivers
Creating Docker images
Interactive image creation
Using Dockerfiles
Saving and loading images
Lift and shift - containerizing a legacy app
Analyzing external dependencies
Source code and build instructions
Configuration
Secrets
Authoring the Dockerfile
Why bother?
Sharing or shipping images
Tagging an image
Demystifying image namespaces
Explaining official images
Pushing images to a registry
Chapter 5: Data Volumes and Configuration
Creating and mounting data volumes
Modifying the container layer
Creating volumes
Mounting a volume
Removing volumes
Accessing Docker volumes
Sharing data between containers
Using host volumes
Defining volumes in images
Configuring containers
Defining environment variables for containers
Using configuration files
Defining environment variables in container images
Environment variables at build time
Chapter 6: Debugging Code Running in Containers
Evolving and testing code running in a container
Mounting evolving code into the running container
Auto-restarting code upon changes
Auto-restarting for Node.js
Auto-restarting for Java and Spring Boot
Auto-restarting for Python
Auto-restarting for .NET
Line-by-line code debugging inside a container
Debugging a Node.js application.
Debugging a .NET application
Instrumenting your code to produce meaningful logging information
Instrumenting a Python application
Instrumenting a .NET C# application
Using Jaeger to monitor and troubleshoot
Chapter 7: Testing Applications Running in Containers
Benefits of testing applications in containers
Why do we test?
Manual versus automated testing
Why do we test in containers?
Different types of testing
Unit tests
Integration tests
Acceptance tests
Commonly used tools and technologies
Implementing a sample component
Implementing and running unit and integration tests
Implementing and running black box tests
Best practices for setting up a testing environment
Tips for debugging and troubleshooting issues
Challenges and considerations when testing applications running in containers
Case studies
Chapter 8: Increasing Productivity with Docker Tips and Tricks
Keeping your Docker environment clean
Using a .dockerignore file
Executing simple admin tasks in a container
Running a Perl script
Running a Python script
Limiting the resource usage of a container
Avoiding running a container as root
Running Docker from within Docker
Optimizing your build process
Scanning for vulnerabilities and secrets
Using Snyk to scan a Docker image
Using docker scan to scan a Docker image for vulnerabilities
Running your development environment in a container
Part 3:Orchestration Fundamentals
Chapter 9: Learning about Distributed Application Architecture
What is a distributed application architecture?
Defining the terminology
Patterns and best practices
Loosely coupled components.
Stateful versus stateless
Service discovery
Routing
Load balancing
Defensive programming
Redundancy
Health checks
Circuit breaker pattern
Running in production
Logging
Tracing
Monitoring
Application updates
Chapter 10: Using Single-Host Networking
Dissecting the container network model
Network firewalling
Working with the bridge network
The host and null networks
The host network
The null network
Running in an existing network namespace
Managing container ports
HTTP-level routing using a reverse proxy
Containerizing the monolith
Extracting the first microservice
Using Traefik to reroute traffic
Chapter 11: Managing Containers with Docker Compose
Demystifying declarative versus imperative orchestration of containers
Running a multi-service app
Building images with Docker Compose
Running an application with Docker Compose
Scaling a service
Building and pushing an application
Using Docker Compose overrides
Chapter 12: Shipping Logs and Monitoring Containers
Why is logging and monitoring important?
Shipping containers and Docker daemon logs
Shipping container logs
Shipping Docker daemon logs
Querying a centralized log
Step 1 - accessing Kibana
Step 2 - setting up an index pattern
Step 3 - querying the logs in Kibana
Step 4 - visualizing the logs
Collecting and scraping metrics
Step 1 - running cAdvisor in a Docker container
Step 2 - setting up and running Prometheus
Monitoring a containerized application
Step 1 - setting up Prometheus.
Step 2 - instrumenting your application with Prometheus metrics
Step 3 - configuring Prometheus to scrape your application metrics
Step 4 - setting up Grafana for visualization
Step 5 - setting up alerting (optional)
Step 6 - monitoring your containerized application
Chapter 13: Introducing Container Orchestration
What are orchestrators and why do we need them?
The tasks of an orchestrator
Reconciling the desired state
Replicated and global services
Scaling
Self-healing
Data persistence and storage management
Zero downtime deployments
Affinity and location awareness
Security
Introspection
Overview of popular orchestrators
Kubernetes
Docker Swarm
Apache Mesos and Marathon
Amazon ECS
AWS EKS
Microsoft ACS and AKS
Chapter 14: Introducing Docker Swarm
The Docker Swarm architecture
Swarm nodes
Stacks, services, and tasks
Services
Tasks
Stacks
Multi-host networking
Creating a Docker Swarm
Creating a local single-node swarm
Using PWD to generate a Swarm
Creating a Docker Swarm in the cloud
Deploying a first application
Creating a service
Inspecting the service and its tasks
Testing the load balancing
Logs of a service
Deleting a service or a stack
Deploying a multi-service stack
Removing the swarm in AWS
Chapter 15: Deploying and Running a Distributed Application on Docker Swarm
The swarm routing mesh
Zero-downtime deployment
Popular deployment strategies
Rolling updates
Rolling back
Blue-green deployments
Canary releases
Storing configuration data in the swarm.
Protecting sensitive data with Docker secrets.
Notes:
Includes index.
Includes bibliographical references and index.
Description based on print version record.
ISBN:
9781804613184
1804613185
OCLC:
1396227214

The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.

Find

Home Release notes

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Find catalog Using Articles+ Using your account