BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Docker Inc., Release Docker 1.5 With Read-only Containers, Stats and More

Docker Inc., Release Docker 1.5 With Read-only Containers, Stats and More

Docker Inc., have released version 1.5 of the Docker application container runtime, which contains IPv6 support, read-only containers, access to container statistics, “named Dockerfiles” and a Docker image specification v1.0.0.

The latest release of Docker now allows the allocation of an IPv6 address to each container with the new ‘–ipv6’ flag. This enables resolution of IPv6 addresses from within a containers, and this feature can be used to enable containers to communicate across multiple hosts.

When using the ‘--ipv6’ flag Docker will set up the bridge ‘docker0’ with the IPv6 link-local address fe80::1. By default, containers that are created will only get a link-local IPv6 address. To assign globally routable IPv6 addresses to containers an IPv6 subnet must be specified via the ‘--fixed-cidr-v6 parameter’. This will allow Docker to pick an address from the specified CIDR block.

As part of the version 1.5 release, a read-only file system can now be enabled for a container via the ‘--read-only’ flag. The read-only feature allows the restriction of locations that an application running inside a container can write files to. By using this capability in combination with volumes, it is now possible to force applications within a containers to only persist data where it can be managed in a known location, for example, when logging.

A new stats API endpoint and CLI command has also been added to the latest version of Docker, which allows streaming of live CPU, memory, network IO and block IO statistic for containers. The API endpoint may be used to build tools that feed live resource information for containers into existing monitoring solutions, or a live dashboard could be created that directly consumes the API.

The Docker blog states that the new stats feature will allow profiling, which could assist the choosing of correct container resource limits.

[Containers] allow you to package and run your applications in a portable way and let you set resource constraints on your applications to make sure that no one application can take over an entire machine. In order to choose accurate resource limits for your applications, profiling is required to collect this information.

This latest release of Docker also adds the ability to specify the file to use in a Docker build rather than relying on the default Dockerfile. This "named Dockfile" feature is enabled with the ‘docker build -f’ flag, which allows the definition of multiple Dockerfiles within a single project and the specification of which one to use at build time. This primary use case for this enhancement is to enable separate Dockerfiles to be utilised for different testing and production environment configurations.

As part of the Docker 1.5 release, Docker have also announced the public release of the ‘Docker Image Specification v1.0.0’, an open container image specification that documents how Docker constructs images and associated layers.

As a start, we have documented how Docker currently builds and formats images and their configuration. Our hope is that these details allow contributors to better understand this critical facet of Docker as well as help contribute to future efforts to improve the image format.

The image specification document states that the spec is currently an imperfect description of an ‘imperfectly-understood problem’, and that the Docker project is an attempt to implement this specification.

The stated primary concern of the specification and associated implementation is to enable compatibility and interoperability. CoreOS have also attempted to create an app container (appc) spec, and have proposed modifications to Docker, as reported in an earlier article on InfoQ.

The latest Docker source code can be found in the project’s Github repository, and the Docker image specification v1.0.0 can be found within the associated image/spec project folder.

Rate this Article

Adoption
Style

BT