1. Preface
1. Who this book is for
2. What this book covers
3. To get the most out of this book
1. Download the example code files
2. Code in Action
3. Download the color images
4. Conventions used
4. Get in touch
1. Reviews
1. Section 1 - Key Container Concepts
1. Modern Infrastructures and Applications with Docker
1. Technical requirements
2. Understanding the evolution of applications
3. Infrastructures
4. Processes
5. Microservices and processes
6. What are containers?
7. Learning about the main concepts of containers
1. Container runtime
2. Images
3. Containers
4. Process isolation
5. Orchestration
6. Registry
8. Docker components
1. Docker daemon
2. Docker client
3. Docker objects
9. Building, shipping, and running workflows
1. Building
2. Shipping
3. Running
10. Windows containers
11. Customizing Docker
1. Customizing the Docker daemon
2. Docker client customization
12. Docker security
1. Docker client-server security
2. Docker daemon security
1. Namespaces
2. User namespace
3. Kernel capabilities (seccomp)
, 4. Linux security modules
5. Docker Content Trust
13. Chapter labs
1. Installing the Docker runtime and executing a "hello world" container
2. Docker runtime processes and namespace isolation
3. Docker capabilities
14. Summary
15. Questions
16. Further reading
2. Building Docker Images
1. Technical requirements
2. Building Docker images
1. Creating images with Dockerfiles
2. Creating images interactively
3. Creating images from scratch
3. Understanding copy-on-write filesystems
4. Building images with a Dockerfile reference
1. Dockerfile quick reference
2. Building process actions
5. Image tagging and meta-information
6. Docker registries and repositories
7. Securing images
8. Managing images and other related objects
1. Listing images
2. Sharing images using registries
9. Multistage building and image caches
10. Templating images
11. Image releases and updates
12. Chapter labs
1. Docker build caching
2. Where to use volumes in Dockerfiles
3. Multistage building
4. Deploying a local registry
5. Image templating using Dockerfiles
13. Summary
14. Questions
15. Further reading
3. Running Docker Containers
1. Technical requirements
2. Reviewing the Docker command line in depth
3. Learning about Docker objects
4. Running containers
1. Main container actions
2. Container network properties
3. Container behavior definition
4. Executing containers
, 5. Container security options
6. Using host namespaces
5. Interacting with containers
6. Limiting host resources
7. Converting containers into images
8. Formatting and filtering information
9. Managing devices
10. Chapter labs
1. Reviewing Docker command-line object options
2. Executing containers
3. Limiting container resources
4. Formatting and filtering container list output
11. Summary
12. Questions
13. Further reading
4. Container Persistency and Networking
1. Technical requirements
2. Understanding stateless and stateful containers
1. Learning how volumes work
2. Learning about volume object actions
3. Using volumes in containers
3. Learning about different persistence strategies
1. Local persistence
2. Distributed or remote volumes
4. Networking in containers
1. Using the default bridge network
2. Understanding null networks
3. Understanding the host network
4. Creating custom bridge networks
5. The MacVLAN network – macvlan
5. Learning about container interactions
1. Communication with the external world
2. Inter-container communications
3. DNS on custom bridge networks
6. Publishing applications
7. Chapter labs
1. Using volumes to code on your laptop
2. Mounting SSHFS
3. Multi-homed containers
4. Publishing applications
8. Summary
9. Questions
10. Further reading
5. Deploying Multi-Container Applications
1. Technical requirements
2. Installing and using Docker Compose