Chapter 1, Getting Started with Docker, talks about the various distinctions of the open-source Docker platform and how it simplifies and speeds up the process of realizing containerized workloads to be readily deployed and run on a variety of operating systems, bare metal servers, and virtual machines. This chapter also has step-by-step details on installing the Docker Engine, downloading a Docker image from the centralized Docker Hub, creating a Docker container out of that image, and troubleshooting the Docker container.
Chapter 2, Handling Docker Containers, is dedicated to clearly explaining the various commands required to manage Docker images and containers. This chapter provides the basic Docker terminologies needed to understand the output of Docker commands. Other details covered here include starting an interactive session inside a container, managing your images, running containers, and tracking changes inside containers.
Chapter 3, Building Images, describes how Docker images are built. There are several ways and means through which Docker images are built and stored. The other important topics covered in this chapter include a quick overview of a Dockerfile's syntax and a bit of theoretical information on how Docker stores images.
Chapter 4, Publishing Images, tells you everything about publishing images on the centralized Docker Hub and how to get the most out of Docker Hub. The other important contents in the chapter include more details about Docker Hub, how to push images to Docker Hub, the automatic building of images, how to create organizations on Docker Hub, and finally private repositories.
Chapter 5, Running Your Private Docker Infrastructure, explains how corporates can set up and run their own private repositories. There are a few valid reasons why corporates want to have their own repositories to host some crucial Docker images. This means that publicly available repositories are found unsuitable for storing certain specific images. This chapter has all the information required to set up and sustain private repositories.
Chapter 6, Running Services in a Container, illustrates how a web application can be run inside a Docker container as a service and how to expose the service, in order for the outside world to find and access it. How the appropriate Dockerfile is developed to simplify this task is also described in detail.
Chapter 7, Sharing Data with Containers, shows you how to use Docker's volumes feature to share data between the Docker host and its containers. The other topics covered here are how to share data between containers, the common use cases, and the typical pitfalls to avoid.
Chapter 8, Orchestrating Containers, explains how to do the orchestration of multiple containers towards composite and containerized workloads. It is a well-known truth that orchestration plays a major role in producing composite applications. This chapter includes relevant details about the orchestration process and the toolset made available for enabling the process of orchestration. Finally, you will find a well-orchestrated example of how containers can be orchestrated to bring forth highly reusable and business-aware containers.
Chapter 9, Testing with Docker, focuses on testing your code inside Docker images. You will also find out how to run tests inside an ad hoc Docker image. Finally, you will be given details of how to integrate Docker testing into a continuous integration server such as Jenkins.
Chapter 10, Debugging Containers, teaches you how to debug applications running inside containers. How Docker ensures that processes running inside containers are isolated from the outside world is also covered.
Chapter 11, Securing Docker Containers, explains the security and privacy challenges and concerns, and how they are addressed through the liberal use of competent standards, technologies, and tools. This chapter covers the mechanism for dropping user privileges once inside an image. There is also a brief introduction to how the security capabilities introduced in SELinux come in handy when securing Docker containers.
Chapter 12, The Docker Platform – Distinct Capabilities and Use Cases, describes how the Docker platform is becoming an enterprise-grade method for bringing forth a variety of distinct automation in the fields of software engineering and distributed computing. Several industry case studies are included in this chapter in order to address any worries about Docker and to enhance its penetration and participation.