Chapter 4. Working with Docker Images
Every Docker container is based on an image, which provides the basis for everything that you will ever deploy and run with Docker. To launch a container, you must either download a public image or create your own. Every Docker image consists of one or more filesystem layers that generally have a direct one-to-one mapping to each individual build step used to create that image.
For image management, Docker relies heavily on its storage backend, which communicates with the underlying Linux filesystem to build and manage the multiple layers that combine into a single usable image. The primary storage backends that are supported include: AUFS, BTRFS, Device-mapper, and overlayfs. Each storage backend provides a fast copy-on-write (CoW) system for image management.
Anatomy of a Dockerfile
To create a custom Docker image with the default tools, you will need to become familiar with the Dockerfile. This file describes all the steps that are required to create one image and would usually be contained within the root directory of the source code repository for your application.
A typical Dockerfile might look something like the one shown here, which will create a container for a Node.js-based application:
FROM node:0.10 MAINTAINER Anna Doe <anna@example.com> LABEL "rating"="Five Stars" "class"="First Class" USER root ENV AP /data/app ENV SCPATH /etc/supervisor/conf.d RUN apt-get -y update # The daemons RUN apt-get -y install supervisor RUN mkdir ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access