A great book for those looking to get started with, or expand their use of, Docker.
GET MORE WITH MANNING
An eBook copy of the previous edition, Docker in Action (First Edition), is included at no additional cost. It will be automatically added to your Manning Bookshelf within 24 hours of purchase.
Even small applications have dozens of components. Large applications may have thousands, which makes them challenging to install, maintain, and remove. Docker bundles all application components into a package called a container that keeps things tidy and helps manage any dependencies on other applications or infrastructure. Used by everyone from small start-ups to eBay and Lyft, Docker has changed development for the better. If you’re looking to join the container revolution, Docker in Action, Second Edition will get you started.
Part 1: Keeping a Tidy and Trustworthy Computer
1. Welcome to Docker
1.1. What is Docker?
1.1.1. “Hello, World”
1.1.3. Containers are not virtualization
1.1.4. Running software in containers for isolation
1.1.5. Shipping containers
1.2. What problems does Docker solve?
1.2.1. Getting organized
1.2.2. Improving portability
1.2.3. Protecting your computer
1.3. Why is Docker important?
1.4. Where and when to use Docker
1.5. Docker in the Larger Ecosystem
1.6. Getting help with the Docker command line
2. Running software in containers
2.1. Controlling containers: building a website monitor
2.1.1. Creating and starting a new container
2.1.2. Running interactive containers
2.1.3. Listing, stopping, restarting, and viewing output of containers
2.2. Solved problems and the PID namespace
2.3. Eliminating metaconflicts: building a website farm
2.3.1. Flexible container identification
2.3.2. Container state and dependencies
2.4. Building environment-agnostic systems
2.4.1. Read-only file systems
2.4.2. Environment variable injection
2.5. Building durable containers
2.5.1. Automatically restarting containers
2.5.2. PID 1 and init systems
2.6. Cleaning up
3. Software installation simplified
3.1. Identifying software
3.1.1. What is a named repository?
3.1.2. Using tags
3.2. Finding and installing software
3.2.1. Working with Docker registries from the command line
3.2.2. Using alternative registries
3.2.3. Images as files
3.2.4. Installing from a Dockerfile
3.2.5. Docker Hub from the website
3.3. Installation files and isolation
3.3.1. Image layers in action
3.3.2. Layer relationships
3.3.3. Container file system abstraction and isolation
3.3.4. Benefits of this toolset and file system structure
3.3.5. Weaknesses of union file systems
4. Working with storage and volumes
4.1. File trees and mount points
4.2. Bind mounts
4.3. In-memory storage
4.4. Docker volumes
4.4.1. Volumes provide container-independent data management
4.4.2. Using volumes with a NoSQL database
4.5. Shared mount points and sharing files
4.5.1. Anonymous volumes and the volumes-from flag
4.6. Cleaning up volumes
4.7. Advanced storage with volume plugins
5. Single Host Networking
6. Limiting risk with resource controls
Part 2: Packaging Software for Distribution
7. Packaging Software in Images
8. Building images automatically with Dockerfiles
9. Public and Private Software Distribution
10. Running Customized Registries
11. Image Building and Delivery Pipelines
Part 3: Multi-Container and Multi-Host Environments
12. Orchestrate services locally with Docker Compose
13. Orchestrate Services on a Cluster of Docker Hosts with Swarm Mode
14. Advanced Service Clustering with Swarm Mode
15. Advanced Networking Patterns
Part 4: Dockerized Workflows and Operations
16. First-Class Configuration Abstractions
17. Operating Containers in Production
Appendix A: Clusters with Docker Machine and Swarm v1
About the TechnologyThe idea behind Docker is simple. Create a tiny virtual environment called a container that holds just your application and its dependencies. The Docker engine uses the host operating system to keep track of your containers. Applications running inside containers share resources, making their footprints small. They are easy to install, manage, and remove.
About the bookDocker in Action, Second Edition teaches you the skills and knowledge you need to create, deploy, and manage applications hosted in Docker containers. This bestseller has been fully updated with new examples, best practices, and entirely new chapters. You’ll start with a clear explanation of the Docker model and learn how to package applications in containers, including techniques for testing and distributing applications. You’ll also learn how to run programs securely and how to manage shared resources. Using carefully designed examples, the book teaches you how to orchestrate containers and applications from installation to removal. Along the way, you'll discover techniques for using Docker on systems ranging from dev-and-test machines to full-scale cloud deployments.
- How to run software in containers
- Features of the container lifecycle
- Packaging your software for deployment
- Distributing and deploying containerized applications
About the readerWritten for developers with experience working with Linux. No prior knowledge or experience of Docker is needed.
About the authorsJeff Nickoloff runs Topple where he builds large scale services, writes about technology, and help people achieve their goals. Jeff’s experience includes work with numerous startups, Amazon.com, Limelight Networks, Arizona State University, and as a consultant for Fortune 100 companies. Stephen Kuenzli has designed, built, deployed, and operated highly-available, scalable software systems in high tech manufacturing, banking, and ecommerce systems for nearly 20 years.
Very thorough and detailed descriptions of what happens inside of Docker and containers in general.
A great read filling in many gaps left while learning docker on my own.