Book Image

Docker for Developers

By : Richard Bullington-McGuire, Andrew K. Dennis, Michael Schwartz
2 (1)
Book Image

Docker for Developers

2 (1)
By: Richard Bullington-McGuire, Andrew K. Dennis, Michael Schwartz

Overview of this book

Docker is the de facto standard for containerizing apps, and with an increasing number of software projects migrating to containers, it is crucial for engineers and DevOps teams to understand how to build, deploy, and secure Docker environments effectively. Docker for Developers will help you understand Docker containers from scratch while taking you through best practices and showing you how to address security concerns. Starting with an introduction to Docker, you’ll learn how to use containers and VirtualBox for development. You’ll explore how containers work and develop projects within them after you’ve explored different ways to deploy and run containers. The book will also show you how to use Docker containers in production in both single-host set-ups and in clusters and deploy them using Jenkins, Kubernetes, and Spinnaker. As you advance, you’ll get to grips with monitoring, securing, and scaling Docker using tools such as Prometheus and Grafana. Later, you’ll be able to deploy Docker containers to a variety of environments, including the cloud-native Amazon Elastic Kubernetes Service (Amazon EKS), before finally delving into Docker security concepts and best practices. By the end of the Docker book, you’ll be able to not only work in a container-driven environment confidently but also use Docker for both new and existing projects.
Table of Contents (21 chapters)
1
Section 1: An Introduction to Docker – Containers and Local Development
6
Section 2: Running Docker in Production
14
Section 3: Docker Security – Securing Your Containers

Monitoring small deployments – logging and alerting

One of the nice things about starting small is that you may be able to rely on very simple mechanisms for both logging and alerting. For any deployment using Docker and Docker Compose on a single host—for example, a deployment of ShipIt Clicker—you can use some basic tools and commands to deal with logging, and a variety of simple alerting services provided by third parties to deal with alerting.

Logging

For logging, in many cases, all that is required is to use the logs built into Docker. Docker captures the standard output and standard error file handles of every process it starts and makes them available as logs for each container. You can review the consolidated logs for all the services started since the last container restart with the following command, assuming you are in the directory where your docker-compose.yml file is present (less -R will interpret the ANSI color escapes that the logs command...