Frequently bought together

Book Details

ISBN 139781784397937

Paperback240 pages

Book Description

Docker is a next-generation platform for simplifying application containerization life-cycle. Docker allows you to create a robust and resilient environment in which you can generate portable, composable, scalable, and stable application containers.

This book is a step-by-step guide that will walk you through the various features of Docker from Docker software installation to the impenetrable security of containers. The book starts off by elucidating the installation procedure for Docker and a few troubleshooting techniques. You will be introduced to the process of downloading Docker images and running them as containers. You'll learn how to run containers as a service (CaaS) and also discover how to share data among containers. Later on, you'll explore how to establish the link between containers and orchestrate containers using Docker Compose. You will also come across relevant details about application testing inside a container. You will discover how to debug a container using the docker exec command and the nsenter tool. Finally, you will learn how to secure your containers with SELinux and other proven methods.

Table of Contents

Chapter 1: Getting Started with Docker

An introduction to Docker

Docker on Linux

Differentiating between containerization and virtualization

Installing the Docker engine

Understanding the Docker setup

Downloading the first Docker image

Running the first Docker container

Running a Docker container on Amazon Web Services

Troubleshooting

Summary

Chapter 2: Handling Docker Containers

Clarifying the Docker terms

Working with Docker images

Working with an interactive container

Summary

Chapter 3: Building Images

Docker's integrated image building system

A quick overview of the Dockerfile's syntax

The Dockerfile build instructions

A brief overview of the Docker image management

Best practices for writing Dockerfiles

Summary

Chapter 4: Publishing Images

Understanding the Docker Hub

Pushing images to the Docker Hub

Automating the building process for images

Private repositories on the Docker Hub

Organizations and teams on the Docker Hub

The REST APIs for the Docker Hub

Summary

Chapter 5: Running Your Private Docker Infrastructure

The Docker registry and index

Docker registry use cases

Run your own index and registry

Push the image to the newly created Docker registry

Summary

Chapter 6: Running Services in a Container

A brief overview of container networking

Envisaging the Container as a Service

Exposing container services

Summary

Chapter 7: Sharing Data with Containers

The data volume

Sharing host data

Sharing data between containers

Avoiding common pitfalls

Summary

Chapter 8: Orchestrating Containers

Linking containers

Orchestration of containers

Summary

Chapter 9: Testing with Docker

A brief overview of the test-driven development

Testing your code inside Docker

Integrating Docker testing into Jenkins

Summary

Chapter 10: Debugging Containers

Process level isolation for Docker containers

Debugging a containerized application

Installing and using nsenter

Summary

Chapter 11: Securing Docker Containers

Are Docker containers secure enough?

Security-Enhanced Linux for container security

The best practices for container security

Digital signature verification

Summary

What You Will Learn

Build a Docker image using Dockerfiles

Push and publish images on Docker Hub

Run your own private Docker Hub and upload images onto it

Create and run services inside a container to deploy your applications with ease

Share data between the Docker host and containers

Orchestrate multiple containers with Docker Compose

Test and debug applications inside a Docker container

Secure your Docker containers with SELinux

Authors

Pethuru Raj

Pethuru Raj holds a PhD degree and works as the chief architect of Reliance Jio Cloud, Bangalore. He previously worked as a cloud infrastructure architect in the IBM Global Cloud Center of Excellence (CoE), IBM India, and as a TOGAF-certified enterprise architecture (EA) consultant in Wipro Consulting Services (WCS) Division, Bangalore. He also had a fruitful stint as a lead architect in the corporate research (CR) division of Robert Bosch, Bangalore. He gained more than 17 years' IT industry experience and 8 years of research experience.

Jeeva S. Chelladhurai

Jeeva S. Chelladhurai has been working as a DevOps specialist at the IBM Global Cloud Center of Excellence (CoE) in India for the past 8 years. He has more than 20 years of experience in the IT industry. In various capacities, he has technically managed and mentored diverse teams across the globe in envisaging and building pioneering telecommunication products. He specializes in DevOps and cloud solution delivery, with a focus on data center optimization, Software-defined Environments (SDEs), and distributed application development, deployment, and delivery using the newest Docker technology. Jeeva is also a strong proponent of agile methodologies, DevOps, and IT automation. He holds a master's degree in computer science from Manonmaniam Sundaranar University and a graduate certificate in project management from Boston University. He has been instrumental in crafting reusable assets for IBM solution architects and consultants in Docker-inspired containerization technology.

Vinod Singh

Vinod Singh held various positions across development, architecture, and engagement with clients throughout his career.

Currently, he is a senior cloud architect with IBM's cloud flagship offering Bluemix, supporting customers across the world. Vinod's experience with networking and data communication spans software design, development, and testing. The cloud, cognitive computing, and Linux are his passions, and he feels cognitive computing is once again going to change the world.

Alerts & Offers

Series & Level

We understand your time is important. Uniquely amongst the major publishers, we seek to develop and publish the broadest range of learning and information products on each technology. Every Packt product delivers a specific learning pathway, broadly defined by the Series type. This structured approach enables you to select the pathway which best suits your knowledge level, learning style and task objectives.

Learning

As a new user, these step-by-step tutorial guides will give you all the practical skills necessary to become competent and efficient.

Beginner's Guide

Friendly, informal tutorials that provide a practical introduction using examples, activities, and challenges.

Essentials

Fast paced, concentrated introductions showing the quickest way to put the tool to work in the real world.

Cookbook

A collection of practical self-contained recipes that all users of the technology will find useful for building more powerful and reliable systems.

Blueprints

Guides you through the most common types of project you'll encounter, giving you end-to-end guidance on how to build your specific solution quickly and reliably.

Mastering

Take your skills to the next level with advanced tutorials that will give you confidence to master the tool's most powerful features.

Starting

Accessible to readers adopting the topic, these titles get you into the tool or technology so that you can become an effective user.

Progressing

Building on core skills you already have, these titles share solutions and expertise so you become a highly productive power user.