instruction: Create a Dockerfile for fundamentals
output: ```dockerfile
  from their parent layers.Each container's writable layer is mounted on a mountpoint in
  /var/lib/docker/devicemapper/mnt/. An empty directory exists for each
  read-only image layer and each stopped container.Each image layer is a snapshot of the layer below it. The lowest layer of each
  image is a snapshot of the base device that exists in the pool. When you run a
  container, it is a snapshot of the image the container is based on. The following
  example shows a Docker host with two running containers. The first is a ubuntu
  container and the second is a busybox container.
  How container reads and writes work with devicemapperReading filesWith devicemapper, reads happen at the block level. The diagram below shows
  the high level process for reading a single block (0x44f) in an example
  container.
  An application makes a read request for block 0x44f in the container. Because
  the container is a thin snapshot of an image, it doesn't have the block, but it
  has a pointer to the block on the nearest parent image where it does exist, and
  it reads the block
  ```