What Is New in Docker Engine 1.4
| Category | Key Updates |
|---|---|
| New Features | IPv6 support, docker stats command, --cgroup-parent flag, CentOS 7 and Debian 8 support |
| Improvements | Builder cache performance, docker ps formatting, Device Mapper storage driver stability |
| Bug Fixes | Fixed issues with volume commands, link environment variables, and registry communication |
| Security | TLS certificate verification enhancements |
| Deprecations | Several legacy command flags marked for future removal |
How did networking get better in 1.4?
The headline feature is native IPv6 support. You can now assign IPv6 addresses to containers, which is a big deal for modern network stacks. This was a long-requested feature that finally bridges the gap between container networking and IPv6 infrastructure.
In practice, you use the --ip6 flag with docker run and configure the Docker daemon with an IPv6 subnet. This makes containers first-class citizens in dual-stack (IPv4/IPv6) network environments without complex workarounds.
What new tools did we get for container monitoring?
Engine 1.4 introduced the docker stats command. This gives you a live, streaming view of your container's resource usage right from the CLI-CPU, memory, and network I/O.
Before this, you had to jump into containers with top or rely on external monitoring systems. This command is simple but incredibly useful for quick, real-time performance checks during development and debugging.
Were there any core engine improvements?
Yes, the builder cache became significantly faster. This speeds up docker build times when you're iterating on Dockerfiles, especially when only the later layers have changed.
They also added the --cgroup-parent flag for docker run. This allows you to set a custom cgroup parent for a container, giving you more control over resource management hierarchies, which is key for advanced deployment scenarios.
Storage Driver Fixes
The Device Mapper storage driver got more stable. This mattered most for users on older kernel versions where occasional issues would crop up, making it a more reliable choice for production systems.
What about platform support?
This release officially added support for CentOS 7 and Debian 8. This expanded Docker's reach into two major enterprise and community Linux distributions, making it easier to deploy on a wider variety of hosts.
For developers, it meant fewer compatibility headaches and a more consistent experience across different development and production environments.
FAQ
How do I enable IPv6 for my containers?
You need to configure the Docker daemon with an IPv6 subnet by starting it with the --fixed-cidr-v6 flag. Then, you can use the --ip6 flag with docker run to assign a specific address to a container.
Does `docker stats` replace external monitoring tools?
No, it's a lightweight CLI tool for real-time streaming data. It's perfect for quick checks, but for historical data, alerting, and dashboards, you'll still want a dedicated monitoring system like Prometheus or cAdvisor.
Why would I use the `--cgroup-parent` flag?
This is an advanced feature for controlling resource allocation. You might use it to place all containers from a specific service under a shared cgroup, allowing you to limit the total resources consumed by that group of containers.
I'm on CentOS 7, is 1.4 a stable choice?
Yes, this release marked the beginning of official support for CentOS 7, making it a solid and tested version for that platform. It addressed many of the initial compatibility issues found on newer kernels.
Were there any breaking changes in this release?
No major breaking changes, but several older command-line flags were deprecated and started issuing warnings. It was a good idea to check your scripts for any use of deprecated flags to ensure future compatibility.