Docker Cookbook - Helion
ISBN: 978-14-919-1976-7
stron: 366, Format: ebook
Data wydania: 2015-11-04
Księgarnia: Helion
Cena książki: 143,65 zł (poprzednio: 167,03 zł)
Oszczędzasz: 14% (-23,38 zł)
Whether you’re deploying applications on premise or in the cloud, this cookbook provides developers, operators, and IT professionals with more than 130 proven recipes for working with Docker.
With these practical solutions, experienced developers with no previous knowledge of Docker will be able to package and deploy distributed applications within a couple of chapters. IT professionals will be able to solve everyday problems, as well as create, run, share, and deploy Docker images. Operators will quickly be able to adopt the tools that will change the way they work.
The recipes in this book will help you:
- Manage containers, mount data volumes, and link containers
- Create and share container images
- Network containers across single or multiple hosts
- Tackle advanced topics such as Docker configuration and development
- Deploy multi-container applications on a distributed cluster with Kubernetes
- Use a new generation of operating systems optimized for Docker
- Learn tools for application deployment, continuous integration, service discovery, and orchestration
- Access a Docker host on Amazon AWS, Google GCE, and Microsoft Azure
- Monitor containers and explore different application use cases
Osoby które kupowały "Docker Cookbook", wybierały także:
- Docker Certified Associate (DCA): Exam Guide 124,58 zł, (29,90 zł -76%)
- Docker for Developers 124,58 zł, (29,90 zł -76%)
- Learn Docker Fundamentals of Docker 19.x 124,58 zł, (29,90 zł -76%)
- Docker High Performance 78,68 zł, (29,90 zł -62%)
- Docker. Kurs video. Poziom drugi. Sieci, wolumeny i ustawienia daemona 69,00 zł, (27,60 zł -60%)
Spis treści
Docker Cookbook eBook -- spis treści
- Preface
- Why I Wrote This Book
- How This Book Is Organized
- Technology You Need to Understand
- Online Content
- Conventions Used in This Book
- Safari Books Online
- How to Contact Us
- Acknowledgments
- 1. Getting Started with Docker
- 1.0. Introduction
- 1.1. Installing Docker on Ubuntu 14.04
- Problem
- Solution
- Discussion
- See Also
- 1.2. Installing Docker on CentOS 6.5
- Problem
- Solution
- Discussion
- 1.3. Installing Docker on CentOS 7
- Problem
- Solution
- 1.4. Setting Up a Local Docker Host by Using Vagrant
- Problem
- Solution
- Discussion
- 1.5. Installing Docker on a Raspberry Pi
- Problem
- Solution
- Discussion
- See Also
- 1.6. Installing Docker on OS X Using Docker Toolbox
- Problem
- Solution
- Discussion
- 1.7. Using Boot2Docker to Get a Docker Host on OS X
- Problem
- Solution
- Discussion
- 1.8. Running Boot2Docker on Windows 8.1 Desktop
- Problem
- Solution
- Discussion
- See Also
- 1.9. Starting a Docker Host in the Cloud by Using Docker Machine
- Problem
- Solution
- Discussion
- See Also
- 1.10. Using Docker Experimental Binaries
- Problem
- Solution
- See Also
- 1.11. Running Hello World in Docker
- Problem
- Solution
- Discussion
- 1.12. Running a Docker Container in Detached Mode
- Problem
- Solution
- Discussion
- See Also
- 1.13. Creating, Starting, Stopping, and Removing Containers
- Problem
- Solution
- Discussion
- 1.14. Building a Docker Image with a Dockerfile
- Problem
- Solution
- See Also
- 1.15. Using Supervisor to Run WordPress in a Single Container
- Problem
- Solution
- Discussion
- See Also
- 1.16. Running a WordPress Blog Using Two Linked Containers
- Problem
- Solution
- Discussion
- 1.17. Backing Up a Database Running in a Container
- Problem
- Solution
- Discussion
- 1.18. Sharing Data in Your Docker Host with Containers
- Problem
- Solution
- See Also
- 1.19. Sharing Data Between Containers
- Problem
- Solution
- See Also
- 1.20. Copying Data to and from Containers
- Problem
- Solution
- Discussion
- See Also
- 2. Image Creation and Sharing
- 2.0. Introduction
- 2.1. Keeping Changes Made to a Container by Committing to an Image
- Problem
- Solution
- Discussion
- See Also
- 2.2. Saving Images and Containers as Tar Files for Sharing
- Problem
- Solution
- Discussion
- 2.3. Writing Your First Dockerfile
- Problem
- Solution
- Discussion
- See Also
- 2.4. Packaging a Flask Application Inside a Container
- Problem
- Solution
- Discussion
- 2.5. Optimizing Your Dockerfile by Following Best Practices
- Problem
- Solution
- Discussion
- 2.6. Versioning an Image with Tags
- Problem
- Solution
- Discussion
- 2.7. Migrating from Vagrant to Docker with the Docker Provider
- Problem
- Solution
- Discussion
- See Also
- 2.8. Using Packer to Create a Docker Image
- Problem
- Solution
- Discussion
- 2.9. Publishing Your Image to Docker Hub
- Problem
- Solution
- Discussion
- See Also
- 2.10. Using ONBUILD Images
- Problem
- Solution
- See Also
- 2.11. Running a Private Registry
- Problem
- Solution
- Discussion
- See Also
- 2.12. Setting Up an Automated Build on Docker Hub for Continuous Integration/Deployment
- Problem
- Solution
- Discussion
- See Also
- 2.13. Setting Up a Local Automated Build by Using a Git Hook and a Private Registry
- Problem
- Solution
- Discussion
- 2.14. Using Conduit for Continuous Deployment
- Problem
- Solution
- See Also
- 3. Docker Networking
- 3.0. Introduction
- 3.1. Finding the IP Address of a Container
- Problem
- Solution
- See Also
- 3.2. Exposing a Container Port on the Host
- Problem
- Solution
- Discussion
- 3.3. Linking Containers in Docker
- Problem
- Solution
- Discussion
- See Also
- 3.4. Understanding Docker Container Networking
- Problem
- Solution
- Discussion
- See Also
- 3.5. Choosing a Container Networking Namespace
- Problem
- Solution
- Discussion
- See Also
- 3.6. Configuring the Docker Daemon IP Tables and IP Forwarding Settings
- Problem
- Solution
- Discussion
- 3.7. Using pipework to Understand Container Networking
- Problem
- Solution
- Discussion
- See Also
- 3.8. Setting Up a Custom Bridge for Docker
- Problem
- Solution
- Discussion
- 3.9. Using OVS with Docker
- Problem
- Solution
- See Also
- 3.10. Building a GRE Tunnel Between Docker Hosts
- Problem
- Solution
- Discussion
- See Also
- 3.11. Running Containers on a Weave Network
- Problem
- Solution
- Discussion
- See Also
- 3.12. Running a Weave Network on AWS
- Problem
- Solution
- Discussion
- See Also
- 3.13. Deploying flannel Overlay Between Docker Hosts
- Problem
- Solution
- Discussion
- 3.14. Networking Containers on Multiple Hosts with Docker Network
- Problem
- Solution
- Discussion
- 3.15. Diving Deeper into the Docker Network Namespaces Configuration
- Problem
- Solution
- Discussion
- 4. Docker Configuration and Development
- 4.0. Introduction
- 4.1. Managing and Configuring the Docker Daemon
- Problem
- Solution
- Discussion
- 4.2. Compiling Your Own Docker Binary from Source
- Problem
- Solution
- Discussion
- See Also
- 4.3. Running the Docker Test Suite for Docker Development
- Problem
- Solution
- See Also
- 4.4. Replacing Your Current Docker Binary with a New One
- Problem
- Solution
- Discussion
- 4.5. Using nsenter
- Problem
- Solution
- Discussion
- See Also
- 4.6. Introducing runc
- Problem
- Solution
- Discussion
- See Also
- 4.7. Accessing the Docker Daemon Remotely
- Problem
- Solution
- Discussion
- 4.8. Exploring the Docker Remote API to Automate Docker Tasks
- Problem
- Solution
- Discussion
- 4.9. Securing the Docker Daemon for Remote Access
- Problem
- Solution
- Discussion
- 4.10. Using docker-py to Access the Docker Daemon Remotely
- Problem
- Solution
- Discussion
- 4.11. Using docker-py Securely
- Problem
- Solution
- See Also
- 4.12. Changing the Storage Driver
- Problem
- Solution
- Discussion
- See Also
- 5. Kubernetes
- 5.0. Introduction
- Enhanced capabilities
- New concepts
- 5.1. Understanding Kubernetes Architecture
- Problem
- Solution
- Discussion
- 5.2. Networking Pods for Container Connectivity
- Problem
- Solution
- Discussion
- See Also
- 5.3. Creating a Multinode Kubernetes Cluster with Vagrant
- Problem
- Solution
- Discussion
- See Also
- 5.4. Starting Containers on a Kubernetes Cluster with Pods
- Problem
- Solution
- Discussion
- 5.5. Taking Advantage of Labels for Querying Kubernetes Objects
- Problem
- Solution
- See Also
- 5.6. Using a Replication Controller to Manage the Number of Replicas of a Pod
- Problem
- Solution
- Discussion
- See Also
- 5.7. Running Multiple Containers in a Pod
- Problem
- Solution
- Discussion
- 5.8. Using Cluster IP Services for Dynamic Linking of Containers
- Problem
- Solution
- Discussion
- See Also
- 5.9. Creating a Single-Node Kubernetes Cluster Using Docker Compose
- Problem
- Solution
- Discussion
- See Also
- 5.10. Compiling Kubernetes to Create Your Own Release
- Problem
- Solution
- Discussion
- See Also
- 5.11. Starting Kubernetes Components with the hyperkube Binary
- Problem
- Solution
- 5.12. Exploring the Kubernetes API
- Problem
- Solution
- Discussion
- See Also
- 5.13. Running the Kubernetes Dashboard
- Problem
- Solution
- Discussion
- 5.14. Upgrading from an Old API Version
- Problem
- Solution
- Discussion
- 5.15. Configuring Authentication to a Kubernetes Cluster
- Problem
- Solution
- Discussion
- See Also
- 5.16. Configuring the Kubernetes Client to Access Remote Clusters
- Problem
- Solution
- Discussion
- See Also
- 5.0. Introduction
- 6. Optimized Operating System Distributions for Docker
- 6.0. Introduction
- 6.1. Discovering the CoreOS Linux Distribution with Vagrant
- Problem
- Solution
- Discussion
- See Also
- 6.2. Starting a Container on CoreOS via cloud-init
- Problem
- Solution
- Discussion
- 6.3. Starting a CoreOS Cluster via Vagrant to Run Containers on Multiple Hosts
- Problem
- Solution
- Discussion
- See Also
- 6.4. Using fleet to Start Containers on a CoreOS Cluster
- Problem
- Solution
- Discussion
- See Also
- 6.5. Deploying a flannel Overlay Between CoreOS Instances
- Problem
- Solution
- Discussion
- 6.6. Using Project Atomic to Run Docker Containers
- Problem
- Solution
- See Also
- 6.7. Starting an Atomic Instance on AWS to Use Docker
- Problem
- Solution
- Discussion
- 6.8. Running Docker on Ubuntu Core Snappy in a Snap
- Problem
- Solution
- Discussion
- See Also
- 6.9. Starting an Ubuntu Core Snappy Instance on AWS EC2
- Problem
- Solution
- Discussion
- See Also
- 6.10. Running Docker Containers on RancherOS
- Problem
- Solution
- Discussion
- See Also
- 7. The Docker Ecosystem: Tools
- 7.0. Introduction
- 7.1. Using Docker Compose to Create a WordPress Site
- Problem
- Solution
- Discussion
- 7.2. Using Docker Compose to Test Apache Mesos and Marathon on Docker
- Problem
- Solution
- Discussion
- See Also
- 7.3. Starting Containers on a Cluster with Docker Swarm
- Problem
- Solution
- Discussion
- See Also
- 7.4. Using Docker Machine to Create a Swarm Cluster Across Cloud Providers
- Problem
- Solution
- Discussion
- See Also
- 7.5. Managing Containers Locally Using the Kitematic UI
- Problem
- Solution
- See Also
- 7.6. Managing Containers Through Docker UI
- Problem
- Solution
- Discussion
- See Also
- 7.7. Using the Wharfee Interactive Shell
- Problem
- Solution
- See Also
- 7.8. Orchestrating Containers with Ansible Docker Module
- Problem
- Solution
- Discussion
- See Also
- 7.9. Using Rancher to Manage Containers on a Cluster of Docker Hosts
- Problem
- Solution
- Discussion
- 7.10. Running Containers on a Cluster Using Lattice
- Problem
- Solution
- Discussion
- See Also
- 7.11. Running Containers via Apache Mesos and Marathon
- Problem
- Solution
- Discussion
- See Also
- 7.12. Using the Mesos Docker Containerizer on a Mesos Cluster
- Problem
- Solution
- Discussion
- See Also
- 7.13. Discovering Docker Services with Registrator
- Problem
- Solution
- Discussion
- See Also
- 8. Docker in the Cloud
- 8.0. Introduction
- 8.1. Accessing Public Clouds to Run Docker
- Problem
- Solution
- Discussion
- See Also
- 8.2. Starting a Docker Host on AWS EC2
- Problem
- Solution
- Discussion
- See Also
- 8.3. Starting a Docker Host on Google GCE
- Problem
- Solution
- Discussion
- 8.4. Starting a Docker Host on Microsoft Azure
- Problem
- Solution
- Discussion
- See Also
- 8.5. Starting a Docker Host on AWS Using Docker Machine
- Problem
- Solution
- Discussion
- 8.6. Starting a Docker Host on Azure with Docker Machine
- Problem
- Solution
- Discussion
- See Also
- 8.7. Running a Cloud Provider CLI in a Docker Container
- Problem
- Solution
- Discussion
- See Also
- 8.8. Using Google Container Registry to Store Your Docker Images
- Problem
- Solution
- Discussion
- 8.9. Using Docker in GCE Google-Container Instances
- Problem
- Solution
- Discussion
- 8.10. Using Kubernetes in the Cloud via GCE
- Problem
- Solution
- Discussion
- See Also
- 8.11. Setting Up to Use the EC2 Container Service
- Problem
- Solution
- Discussion
- See Also
- 8.12. Creating an ECS Cluster
- Problem
- Solution
- Discussion
- See Also
- 8.13. Starting Docker Containers on an ECS Cluster
- Problem
- Solution
- Discussion
- See Also
- 8.14. Starting an Application in the Cloud Using Docker Support in AWS Beanstalk
- Problem
- Solution
- Discussion
- 9. Monitoring Containers
- 9.0. Introduction
- 9.1. Getting Detailed Information About a Container with docker inspect
- Problem
- Solution
- Discussion
- 9.2. Obtaining Usage Statistics of a Running Container
- Problem
- Solution
- Discussion
- See Also
- 9.3. Listening to Docker Events on Your Docker Hosts
- Problem
- Solution
- Discussion
- See Also
- 9.4. Getting the Logs of a Container with docker logs
- Problem
- Solution
- Discussion
- 9.5. Using a Different Logging Driver than the Docker Daemon
- Problem
- Solution
- Discussion
- See Also
- 9.6. Using Logspout to Collect Container Logs
- Problem
- Solution
- Discussion
- See Also
- 9.7. Managing Logspout Routes to Store Container Logs
- Problem
- Solution
- Discussion
- 9.8. Using Elasticsearch and Kibana to Store and Visualize Container Logs
- Problem
- Solution
- Discussion
- 9.9. Using Collectd to Visualize Container Metrics
- Problem
- Solution
- Discussion
- See Also
- 9.10. Using cAdvisor to Monitor Resource Usage in Containers
- Problem
- Solution
- See Also
- 9.11. Monitoring Container Metrics with InfluxDB, Grafana, and cAdvisor
- Problem
- Solution
- 9.12. Gaining Visibility into Your Containers Layout with Weave Scope
- Problem
- Solution
- Discussion
- See Also
- 10. Application Use Cases
- 10.0. Introduction
- 10.1. CI/CD: Setting Up a Development Environment
- Problem
- Solution
- Discussion
- 10.2. CI/CD: Building a Continuous Delivery Pipeline with Jenkins and Apache Mesos
- Problem
- Solution
- Discussion
- 10.3. ELB: Creating a Dynamic Load-Balancer with Confd and Registrator
- Problem
- Solution
- Discussion
- See Also
- 10.4. DATA: Building an S3-Compatible Object Store with Cassandra on Kubernetes
- Problem
- Solution
- Discussion
- 10.5. DATA: Building a MySQL Galera Cluster on a Docker Network
- Problem
- Solution
- Discussion
- See Also
- 10.6. DATA: Dynamically Configuring a Load-Balancer for a MySQL Galera Cluster
- Problem
- Solution
- 10.7. DATA: Creating a Spark Cluster
- Problem
- Solution
- Discussion
- See Also
- Index