Moby v1.12.0 Release Notes

Release Date: 2016-07-28 // almost 8 years ago
  • IMPORTANT: Docker 1.12.0 ships with an updated systemd unit file for rpm 🐧 based installs (which includes RHEL, Fedora, CentOS, and Oracle Linux 7). When ⬆️ upgrading from an older version of docker, the upgrade process may not ⚡️ automatically install the updated version of the unit file, or fail to start 🐳 the docker service if;

    • 🐳 the systemd unit file (/usr/lib/systemd/system/docker.service) contains local changes, or
    • a systemd drop-in file is present, and contains -H fd:// in the ExecStart directive

    🐳 Starting the docker service will produce an error:

    Failed to start docker.service: Unit docker.socket failed to load: No such file or directory.
    

    or

    no sockets found via socket activation: make sure the service was started by systemd.
    

    To resolve this:

    • Backup the current version of the unit file, and replace the file with the version that ships with docker 1.12
    • ✂ Remove the Requires=docker.socket directive from the /usr/lib/systemd/system/docker.service file if present
    • ✂ Remove -H fd:// from the ExecStart directive (both in the main unit file, and in any drop-in files present).

    After making those changes, run sudo systemctl daemon-reload, and sudo 🐳 systemctl restart docker to reload changes and (re)start the docker daemon.

    IMPORTANT: With Docker 1.12, a Linux docker installation now has two ➕ additional binaries; dockerd, and docker-proxy. If you have scripts for ⚡️ installing docker, please make sure to update them accordingly.

    🏗 Builder

    • 🆕 New HEALTHCHECK Dockerfile instruction to support user-defined healthchecks #23218
    • 🆕 New SHELL Dockerfile instruction to specify the default shell when using the shell form for commands in a Dockerfile #22489
    • ➕ Add #escape= Dockerfile directive to support platform-specific parsing of file paths in Dockerfile #22268
    • ➕ Add support for comments in .dockerignore #23111
    • 👌 Support for UTF-8 in Dockerfiles #23372
    • 🐳 Skip UTF-8 BOM bytes from Dockerfile and .dockerignore if exist #23234
    • 🐧 Windows: support for ARG to match Linux #22508
    • 🛠 Fix error message when building using a daemon with the bridge network disabled #22932

    Contrib

    • 🐧 Enable seccomp for Centos 7 and Oracle Linux 7 #22344
    • ✂ Remove MountFlags in systemd unit to allow shared mount propagation #22806

    Distribution

    • ➕ Add --max-concurrent-downloads and --max-concurrent-uploads daemon flags useful for situations where network connections don't support multiple downloads/uploads #22445
    • 🐳 Registry operations now honor the ALL_PROXY environment variable #22316
    • 🐳 Provide more information to the user on docker load #23377
    • 📇 Always save registry digest metadata about images pushed and pulled #23996

    🌲 Logging

    • 🐳 Syslog logging driver now supports DGRAM sockets #21613
    • ➕ Add --details option to docker logs to also display log tags #21889
    • 🐳 Enable syslog logger to have access to env and labels #21724
    • 🐳 An additional syslog-format option rfc5424micro to allow microsecond resolution in syslog timestamp #21844
    • 🐳 Inherit the daemon log options when creating containers #21153
    • ✂ Remove docker/ prefix from log messages tag and replace it with {{.DaemonName}} so that users have the option of changing the prefix #22384

    Networking

    • 🐳 Built-in Virtual-IP based internal and ingress load-balancing using IPVS #23361
    • 🐳 Routing Mesh using ingress overlay network #23361
    • 🐳 Secured multi-host overlay networking using encrypted control-plane and Data-plane #23361
    • 🐳 MacVlan driver is out of experimental #23524
    • ➕ Add driver filter to network ls #22319
    • ➕ Adding network filter to docker ps --filter #23300
    • ➕ Add --link-local-ip flag to create, run and network connect to specify a container's link-local address #23415
    • ➕ Add network label filter support #21495
    • ✂ Removed dependency on external KV-Store for Overlay networking in Swarm-Mode #23361
    • ➕ Add container's short-id as default network alias #21901
    • 🐳 run options --dns and --net=host are no longer mutually exclusive #22408
    • 🛠 Fix DNS issue when renaming containers with generated names #22716
    • 👍 Allow both network inspect -f {{.Id}} and network inspect -f {{.ID}} to address inconsistency with inspect output #23226

    🔌 Plugins (experimental)

    • 🆕 New plugin command to manager plugins with install, enable, disable, rm, inspect, set subcommands #23446