Docker has released version 1.6 of its container virtualization solution, Docker Engine. Also updates for Registry, Compose, Swarm and Machine and a preview of a client for Microsoft Windows were released.
The Docker Engine contains the following new features:
- Container and Image Labels, which allow attachment of user-defined metadata
- Logging Drivers, which can send container logs to other systems such as Syslog or other Third Party logging Systems
- Content Addressable Image Identifiers, which allows you to pull, run, build and refer to images using a Digest.
- Specify ulimit for all containers
- Ability to make changes to images on the fly without having to re-build the entire image.
Also a technical preview of a client for Microsoft Windows was released, the client makes the Docker Command Line Interface available on Windows. This allows for management of Docker hosts and containers from a Windows host.
Registry, the distribution component of Docker has been updated to version 2.0 with enhanced performance and reliability. Compose, the tool for defining and running complex applications with Docker has been updated to version 1.2 introducing the ability to extend services in other Compose files and more. Swarm, which provides native clustering for Docker has been updated to version 0.2, introducing spreading of containers, support for more Docker commands and clustering drivers support. Machine, used to create Docker hosts is updated to version 0.2 introducing a cleaner drivers interface, centralized provisioning by Machine and the ability to regenerate TLS certificates.
Docker uses a client-server architecture. The Docker client talks to the Docker daemon, which does the heavy lifting of building, running, and distributing your Docker containers. Both the Docker client and the daemon can run on the same system, or you can connect a Docker client to a remote Docker daemon. The Docker client and daemon communicate via sockets or through a RESTful API.
Docker consists of three components:
- Docker Image: a read-only template. For example, an image could contain an Ubuntu operating system with Apache and your web application installed. Images are used to create Docker containers. Docker provides a simple way to build new images or update existing images, or you can download Docker images that other people have already created. Docker images are the build component of Docker.
- Docker Registries: hold images. These are public or private stores from which you upload or download images. The public Docker registry is called Docker Hub. It provides a huge collection of existing images for your use. These can be images you create yourself or you can use images that others have previously created. Docker registries are the distribution component of Docker.
- Docker Containers: similar to a directory. A Docker container holds everything that is needed for an application to run. Each container is created from a Docker image. Docker containers can be run, started, stopped, moved, and deleted. Each container is an isolated and secure application platform. Docker containers are the run component of Docker.