Docker unveiled version 1.13 of its core container product Thursday, with fixes that allow for more minimal container images, automatic cleanup of unused data, easier access to logs, and a slightly reworked and more backward-compatible CLI. But some recently identified issues with the Mac version of Docker have yet to be worked out.
A swarm of improvements
Not everyone was thrilled when Docker added swarm mode to the core product to provide out-of-the-box clustering and orchestration. But Docker is sticking with swarm mode as a standard add-on, and version 1.13 incorporates some enhancements.
A Docker Compose file, for instance, can now be used to launch services via the docker stack deploy
command, so deploying a service stack using swarm mode can be done with fewer commands or configuration elements.
Other changes in Docker 1.13 involve revamping the CLI. Current and future versions of Docker will support a new command syntax where the object manipulated is followed by an accompanying command—for example, docker image history
. The original syntax will still be supported for now, but it’s not clear when it will be removed entirely. Docker’s rationale for doing this was that “many top-level commands clutter help pages and make tab-completion harder.”
Another change makes it possible for newer versions of the CLI to talk to older versions of the Docker daemon, so it’s easier to cope with running inconsistent versions of Docker across multiple machines.
Cleaning up the place
A few additions in 1.13 are likely to make everyone happy, as they address long-standing developer desires. A new command, prune
, can clean up unused data across an entire Docker installation or even a specific volume. Docker mavens used to have to perform this tidying manually or with scheduled jobs or shell scripts.
When building Docker images, the new —squash
flag can condense all the filesystem layers produced by a build into a single layer. Other changes involve logging, such as an endpoint for the Docker engine that provides metrics through the Prometheus container-monitoring standard.
One area where work remains to be done is Docker for Mac. Users routinely report performance issues with this desktop edition of Docker, and some have resorted to third-party solutions like Dinghy as workarounds. One major bug that did get fixed for Mac users involved disk space not reclaimed properly. Support for sharing Unix sockets still doesn’t have a fix, and it’s not clear when one will be delivered. HashiCorp’s Nomad, a third-party product that works with Docker, recommends against using Docker for Mac until this feature is fixed.
Docker’s fast-moving design philosophy has been criticized for emphasizing new features and rapid development over stability and reliability. Docker has promised that the core engine for the product will become its own separate project, as a way to guarantee stability, but that initiative has started only now.