Docker has made dramatic improvements to its container platform for the release of Docker Engine 1.6, including improvements to container and image labels, logging driver, content addressable image drivers and ulimits.
One exciting announcement with Docker Engine 1.6 is the addition of a Windows Client preview.
With the help of Microsoft engineers, Docker Windows Client has been created and is ready for its official release. Like Mac Client, Windows Client can be used with a remote host.
Windows Client is particularly helpful for Dockers users because of the amount of software that is programmed for the operating system.
Docker has scaled its testing infrastructure so the testing of Windows Client will be accommodated on every PR to the Engine.
Docker users have been waiting for labels that will allow them to attach user-defined metadata to containers and images that can be used by tools, and Engine 1.6 delivers.
Labels allow you to attach user-defined metadata to containers and images that can be used by your tools. Once in place, labels allow for the quick look-up of images and containers.
Docker Engine 1.6 adds the option for `docker run –log-driver`, which comes with the option to default to the old functionality with `json-file`, `syslog` and `none`, which can be useful with verbose apps in which the user is not concerned with logs.
Docker Engine 1.6 also adds a patch that allows users to pull, run, build and refer to images with a new content addressable identifier, called a `digest`.
Previously with images, users had to specify them with `namespace/repository:tag` or `repository`. The `digest` identifier is an immutable reference to the content inside the image, making them a valuable tool for patches and updates.
While Docker already supported custom namespaces and capabilities, Docker 1.6 adds support for custom cgroups. With the using of the `–cgroup-parent` flag, users can assign a specific cgroup in which to run a container in, allowing users to create and manage cgroups on their own.
Users also will be able to define custom resources for their cgroups and place containers under a common parent group.
Before Docker Engine 1.6, containers inherited their ulimit settings from the docker daemon, which does not work well within a container.
With Docker Engine 1.6, users can use ulimits to limit the resources of a process. With this new feature, which users may be familiar with from the command line tool, users will be able to specify the default ulimit for all containers when configuring the daemon.
Docker Engine 1.6 gives users the ability to change images without having to re-build the entire image with the `commit –change` and `import –change` functions.
With those functions, users can specify standard changes to be applied to a new image. The changes then are expressed in the Dockerfile syntax and used to modify the image.