Latest in branch 1.12
1.12.6
Released 10 Jan 2017
(9 years ago)
SoftwareDocker Engine
Version1.12
Initial release1.12.0
28 Jul 2016
(9 years ago)
Latest release1.12.6
10 Jan 2017
(9 years ago)
Security supportUnmaintained
Release noteshttps://docs.docker.com/engine/release-notes/prior-releases/
Documentationhttps://docs.docker.com/
Downloadhttps://docs.docker.com/engine/install/
Docker Engine 1.12 ReleasesView full list

What Is New in Docker Engine 1.12

Category Key Changes
New Features Built-in Swarm Mode, Service Management, Built-in Routing Mesh, Healthchecks in Dockerfile
CLI Improvements docker service command, docker stack command, --detach flag
API & Engine Default seccomp profile, API version negotiation, Distributed Application Bundles (DAB)
Deprecations Standard container logging driver, --api-enable-cors flag

How does built-in Swarm mode change container orchestration?

Docker 1.12 integrates Swarm directly into the Engine, eliminating the need for separate orchestration tools. This native mode turns any Docker daemon into either a manager or a worker node with a single command.

You get automatic leader election, service discovery, and load balancing out of the box. In practice, this means you can initialize a swarm cluster with docker swarm init and join nodes with docker swarm join without extra configuration.

What new service management capabilities were introduced?

The docker service command lets you define and manage distributed applications across a swarm. You can declare desired state-like the number of replicas, network, and ports-and Docker works to maintain that state.

Rolling updates are built-in, allowing you to push new image versions without downtime using docker service update --image. This declarative approach is a major shift from manually managing individual containers.

How does the built-in routing mesh work?

The routing mesh automatically distributes incoming requests across all nodes in the swarm, even if the service replica isn't running on that specific node. It uses an internal DNS component and IPVS (IP Virtual Server) for load balancing.

This means you can publish a service port, and any node in the cluster can accept traffic on that port. The mesh routes it to a healthy container, simplifying service exposure and making the cluster act like a single virtual server.

What improvements were made to container healthchecks?

Healthchecks can now be defined directly in the Dockerfile using the HEALTHCHECK instruction. This allows you to build custom health validation into your images rather than configuring it at runtime.

The engine uses this check to determine container status, which integrates with swarm to automatically replace unhealthy tasks. It's a cleaner separation of concerns between image builders and operators.

What CLI changes should developers know about?

New commands like docker service create and docker stack deploy are central to swarm operations. The --detach flag was added to many commands to run them in the background, which is useful for scripting.

For application stacks, Distributed Application Bundles (DAB) let you package multi-service applications for deployment. This was an early precursor to the later docker-compose integration.

FAQ

Do I need to use Swarm Mode, or can I keep running standalone containers?
You can still run standalone containers exactly as before. Swarm Mode is opt-in and requires explicit initialization with docker swarm init to activate its features.

How is the built-in Swarm different from the old standalone Docker Swarm?
The old Swarm was a separate external tool. This new mode is integrated directly into the Docker Engine, offering simpler setup, better security with automatic TLS, and more robust scheduling and networking.

Can I use Docker Compose files with Docker 1.12 Swarm?
Not directly for native swarm services. You use the new docker service commands or Distributed Application Bundles (DAB). Full Compose file support for swarm came in later releases.

What is the default seccomp profile and why does it matter?
A default seccomp (secure computing mode) profile is now applied to containers, blocking over 40 dangerous system calls by default. This significantly improves container security out of the box without any user configuration.

Is the Docker Remote API backwards compatible?
The API now supports version negotiation. Clients can communicate with the daemon without hard-coding the API version, making client tools more compatible across different Docker Engine versions.

Releases In Branch 1.12

VersionRelease date
1.12.610 Jan 2017
(9 years ago)
1.12.516 Dec 2016
(9 years ago)
1.12.412 Dec 2016
(9 years ago)
1.12.326 Oct 2016
(9 years ago)
1.12.211 Oct 2016
(9 years ago)
1.12.118 Aug 2016
(9 years ago)
1.12.028 Jul 2016
(9 years ago)