Docker

The Docker provider creates a docker image from scratch, creates a Dockerfile for it and imports the image to a repo specified in the manifest.

In order to mimick Moby’s bootstrap the minimize_size plugin is required.

The image can also be shrunk even futher using the minimize_size plugin. With optimal settings a 64-bit jessie image can be whittled down to 81.95 MB (built on Dec 13th 2015 with manifests/examples/docker/jessie-minimized.yml).

Manifest settings

Name

  • name: The image name is the repository and tag to where an image should be imported. required manifest vars

Provider

  • dockerfile: List of Dockerfile instructions that should be appended to the ones created by the bootstrapper. optional
  • labels: Labels that should be added to the dockerfile. The image name specified at the top of the manifest will be added as the label name. Check out the docker docs for more information about custom labels. Project atomic also has some useful recommendations for generic container labels. optional manifest vars

Example:

---
name: bootstrap-vz:latest
provider:
  name: docker
  dockerfile:
    - CMD /bin/bash
  labels:
    name: debian-{system.release}-{system.architecture}-{%y}{%m}{%d}
    description: Debian {system.release} {system.architecture}
plugins:
  minimize_size:
    apt:
      autoclean: true
      languages: [none]
      gzip_indexes: true
      autoremove_suggests: true