Book Image

The Docker Workshop

By : Vincent Sesto, Onur Yılmaz, Sathsara Sarathchandra, Aric Renzo, Engy Fouda
5 (3)
Book Image

The Docker Workshop

5 (3)
By: Vincent Sesto, Onur Yılmaz, Sathsara Sarathchandra, Aric Renzo, Engy Fouda

Overview of this book

No doubt Docker Containers are the future of highly-scalable software systems and have cost and runtime efficient supporting infrastructure. But learning it might look complex as it comes with many technicalities. This is where The Docker Workshop will help you. Through this workshop, you’ll quickly learn how to work with containers and Docker with the help of practical activities.? The workshop starts with Docker containers, enabling you to understand how it works. You’ll run third party Docker images and also create your own images using Dockerfiles and multi-stage Dockerfiles. Next, you’ll create environments for Docker images, and expedite your deployment and testing process with Continuous Integration. Moving ahead, you’ll tap into interesting topics and learn how to implement production-ready environments using Docker Swarm. You’ll also apply best practices to secure Docker images and to ensure that production environments are running at maximum capacity. Towards the end, you’ll gather skills to successfully move Docker from development to testing, and then into production. While doing so, you’ll learn how to troubleshoot issues, clear up resource bottlenecks and optimize the performance of services. By the end of this workshop, you’ll be able to utilize Docker containers in real-world use cases.
Table of Contents (17 chapters)
Preface

The Container Life Cycle

Containers are crafted from their base images. The container inherits the filesystem of the image by creating a thin read/write layer on top of the image layers' stack. The base images stay intact, and no changes are made to them. All your changes happen in that top layer of the container. For example, say you create a container of ubuntu: 14.08. This image does not have the wget package in it. When you install the wget package, you actually install it on the top layer. So, you have a layer for the base image, and on top of it, another layer for wget.

If you install the Apache server as well, it will be the third layer on top of both of the previous layers. To save all your changes, you need to commit all these changes to a new image because you cannot write over the base image. If you do not commit the changes to a new image, these changes will be deleted with the container's removal.

The container undergoes many other states during its life...