What Is New in Docker Engine 1.13
Docker 1.13 is a massive release that consolidates improvements from nearly 12 months of development. It introduces new management commands, enhanced orchestration features, and significant usability upgrades.
| Category | Key Changes |
|---|---|
| New Features | New management commands, docker stack, docker system, secret management, service logs |
| Improvements | CLI usability, build cache, compression, Swarm mode resilience, metrics |
| Bug Fixes | Over 100 fixes for runtime, networking, build, and Swarm mode |
| Deprecations | Legacy command syntax (e.g., docker rm -link), experimental binaries |
How did Docker CLI commands get better?
The CLI was completely restructured with new management commands for a more logical grouping. This makes discovering functionality and remembering commands much easier.
You now use docker system for system-wide operations like docker system df to see disk usage. The docker stack command is your single point of contact for deploying and managing compose files on a Swarm. In practice, this new structure cleans up the often overwhelming list of top-level commands.
What orchestration features were added?
Orchestration took a huge leap forward with the introduction of secrets management and the docker stack command. This release is a major step towards making Swarm a first-class citizen for production deployments.
You can now securely manage sensitive data like passwords and API keys using docker secret. The docker service logs command lets you fetch logs directly from a service without needing to find the individual container. For resilience, Swarm now automatically rotates TLS certificates for cluster nodes and uses Raft timeouts for better network stability.
Were there any build improvements?
Building images became faster and more efficient with cache optimizations and default compression. The builder now caches intermediate layers more effectively, speeding up rebuilds.
Images are automatically compressed using the --compress option by default, which reduces push/pull times and storage use. You can also squash image layers during the build process with the new --squash experimental flag, leading to smaller final images.
What about metrics and monitoring?
This release added Prometheus-style metrics endpoint for deeper monitoring of the Docker daemon itself. You can now scrape metrics about containers, images, and system resource usage.
To enable it, you need to configure the daemon with metrics address options. This matters because it provides a standardized way to monitor Docker's performance and health, which is crucial for any production environment.
FAQ
How do I use the new secret management feature?
You create a secret from a file or standard input using docker secret create my_secret -. Then, you reference that secret in your compose file or service create command, and it gets mounted as a file inside the container at /run/secrets/<secret_name>.
Is the old command syntax still supported?
Yes, but it's deprecated. Commands like docker rm --link still work but you'll get a warning. You should start migrating to the new management commands like docker container rm.
What's the deal with the --squash flag?
The --squash flag is an experimental feature that combines all layers from the build into a single new layer. This can create significantly smaller images, but it breaks the layer caching for future builds, so use it judiciously for final production images.
How do I enable the experimental features?
You need to explicitly start the daemon with the --experimental flag or set "experimental": true in the daemon.json configuration file. Features like build squash are only available in this mode.
Can I now deploy a compose file to a Swarm?
Absolutely. The new docker stack deploy command is designed specifically for this. You point it at your compose file, and it will deploy the entire stack as Swarm services, handling networks and volumes defined in the file.