Changelog History
Page 4
-
v1.24 Changes
- π³ Split the binary into two:
docker
(client) anddockerd
(daemon) #20639 - β Add
before
andsince
filters todocker images --filter
#22908 - β Add
--limit
option todocker search
#23107 - β Add
--filter
option todocker search
#22369 - β Add security options to
docker info
output #21172 #23520 - β Add insecure registries to
docker info
output #20410 - π³ Extend Docker authorization with TLS user information #21556
- π³ devicemapper: expose Minimum Thin Pool Free Space through
docker info
#21945 - π³ API now returns a JSON object when an error occurs making it more consistent #22880
- π³ Prevent
docker run -i --restart
from hanging on exit #22777 - π Fix API/CLI discrepancy on hostname validation #21641
- π Fix discrepancy in the format of sizes in
stats
from HumanSize to BytesSize #21773 - π³ authz: when request is denied return forbidden exit code (403) #22448
- π Windows: fix tty-related displaying issues #23878
- π³ Split the binary into two:
-
v1.13.1 Changes
February 08, 2017IMPORTANT: On Linux distributions where
devicemapper
was the default storage driver, 0οΈβ£ theoverlay2
, oroverlay
is now used by default (if the kernel supports it). π§ To use devicemapper, you can manually configure the storage driver to use through the--storage-driver
daemon option, or by setting "storage-driver" in thedaemon.json
π§ configuration file.IMPORTANT: In Docker 1.13, the managed plugin api changed, as compared to the experimental version introduced in Docker 1.12. You must uninstall plugins which you installed with Docker 1.12 before upgrading to Docker 1.13. You can uninstall plugins using the
docker plugin rm
command.β¬οΈ If you have already upgraded to Docker 1.13 without uninstalling π previously-installed plugins, you may see this message when the Docker daemon starts:
Error starting daemon: json: cannot unmarshal string into Go value of type types.PluginEnv
π To manually remove all plugins and resolve this problem, take the following steps:
π³ 1. Remove plugins.json from:
/var/lib/docker/plugins/
. π³ 2. Restart Docker. Verify that the Docker daemon starts with no errors. π 3. Reinstall your plugins.Contrib
-
v1.13.0 Changes
January 18, 2017IMPORTANT: On Linux distributions where
devicemapper
was the default storage driver, 0οΈβ£ theoverlay2
, oroverlay
is now used by default (if the kernel supports it). π§ To use devicemapper, you can manually configure the storage driver to use through the--storage-driver
daemon option, or by setting "storage-driver" in thedaemon.json
π§ configuration file.IMPORTANT: In Docker 1.13, the managed plugin api changed, as compared to the experimental version introduced in Docker 1.12. You must uninstall plugins which you installed with Docker 1.12 before upgrading to Docker 1.13. You can uninstall plugins using the
docker plugin rm
command.β¬οΈ If you have already upgraded to Docker 1.13 without uninstalling π previously-installed plugins, you may see this message when the Docker daemon starts:
Error starting daemon: json: cannot unmarshal string into Go value of type types.PluginEnv
π To manually remove all plugins and resolve this problem, take the following steps:
π³ 1. Remove plugins.json from:
/var/lib/docker/plugins/
. π³ 2. Restart Docker. Verify that the Docker daemon starts with no errors. π 3. Reinstall your plugins.π Builder
- β Add capability to specify images used as a cache source on build. These images do not need to have local parent chain and can be pulled from other registries #26839
- π (experimental) Add option to squash image layers to the FROM image after successful builds #22641
- π Fix dockerfile parser with empty line after escape #24725
- β Add step number on
docker build
#24978 - β Add support for compressing build context during image build #25837
- β add
--network
todocker build
#27702 - π Fix inconsistent behavior between
--label
flag ondocker build
anddocker run
#26027 - π Fix image layer inconsistencies when using the overlay storage driver #27209
- π Unused build-args are now allowed. A warning is presented instead of an error and failed build #27412
- π Fix builder cache issue on Windows #27805
- π Allow
USER
in builder on Windows #28415 - π Handle env case-insensitive on Windows #28725
Contrib
- β Add support for building docker debs for Ubuntu 16.04 Xenial on PPC64LE #23438
- β Add support for building docker debs for Ubuntu 16.04 Xenial on s390x #26104
- β Add support for building docker debs for Ubuntu 16.10 Yakkety Yak on PPC64LE #28046
- β Add RPM builder for VMWare Photon OS #24116
- β Add shell completions to tgz #27735
- β‘οΈ Update the install script to allow using the mirror in China #27005
- β Add DEB builder for Ubuntu 16.10 Yakkety Yak #27993
- β Add RPM builder for Fedora 25 #28222
- β Add
make deb
support for aarch64 #27625
Distribution
- π Update notary dependency to 0.4.2 (full changelogs here) #27074
- Support for compilation on windows docker/notary#970
- Improved error messages for client authentication errors docker/notary#972
- Support for finding keys that are anywhere in the
~/.docker/trust/private
directory, not just under~/.docker/trust/private/root_keys
or~/.docker/trust/private/tuf_keys
docker/notary#981 - Previously, on any error updating, the client would fall back on the cache. Now we only do so if there is a network error or if the server is unavailable or missing the TUF data. Invalid TUF data will cause the update to fail - for example if there was an invalid root rotation. docker/notary#982
- Improve root validation and yubikey debug logging docker/notary#858 docker/notary#891
- Warn if certificates for root or delegations are near expiry docker/notary#802
- Warn if role metadata is near expiry docker/notary#786
- Fix passphrase retrieval attempt counting and terminal detection docker/notary#906
- π³ Avoid unnecessary blob uploads when different users push same layers to authenticated registry #26564
- π Allow external storage for registry credentials #26354
π² Logging
- π³ Standardize the default logging tag value in all logging drivers #22911
- π Improve performance and memory use when logging of long log lines #22982
- π Enable syslog driver for windows #25736
- β Add Logentries Driver #27471
- β‘οΈ Update of AWS log driver to support tags #27707
- π³ Unix socket support for fluentd #26088
- π Enable fluentd logging driver on Windows #28189
- π³ Sanitize docker labels when used as journald field names #23725
- π Fix an issue where
docker logs --tail
returned less lines than expected #28203 - π Splunk Logging Driver: performance and reliability improvements #26207
- π³ Splunk Logging Driver: configurable formats and skip for verifying connection #25786
Networking
- β Add
--attachable
network support to enabledocker run
to work in swarm-mode overlay network #25962 - β Add support for host port PublishMode in services using the
--publish
option indocker service create
#27917 and #28943 - β Add support for Windows server 2016 overlay network driver (requires upcoming ws2016 update) #28182
- π Change the default
FORWARD
policy toDROP
#28257 - β Add support for specifying static IP addresses for predefined network on windows #22208
- π Fix
--publish
flag ondocker run
not working with IPv6 addresses #27860 - π Fix inspect network show gateway with mask #25564
- π Fix an issue where multiple addresses in a bridge may cause
--fixed-cidr
to not have the correct addresses #26659 - β Add creation timestamp to
docker network inspect
#26130 - π³ Show peer nodes in
docker network inspect
for swarm overlay networks #28078 - π³ Enable ping for service VIP address #28019
π Plugins
- π³ Move plugins out of experimental #28226
- β Add
--force
ondocker plugin remove
#25096 - β Add support for dynamically reloading authorization plugins #22770
- β Add description in
docker plugin ls
#25556 - β Add
-f
/--format
todocker plugin inspect
#25990 - β Add
docker plugin create
command #28164 - π³ Send request's TLS peer certificates to authorization plugins #27383
- π Support for global-scoped network and ipam plugins in swarm-mode #27287
- π³ Split
docker plugin install
into two API call/privileges
and/pull
#28963
-
v1.12.6 Changes
January 10, 2017IMPORTANT: Docker 1.12 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 theExecStart
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 theExecStart
directive (both in the main unit file, and in any drop-in files present).
After making those changes, run
sudo systemctl daemon-reload
, andsudo π³ systemctl restart docker
to reload changes and (re)start the docker daemon.NOTE: Docker 1.12.5 will correctly validate that either an IPv6 subnet is provided or that the IPAM driver can provide one when you specify the
--ipv6
option.If you are currently using the
--ipv6
option without specifying the π³--fixed-cidr-v6
option, the Docker daemon will refuse to start with the following message:Error starting daemon: Error initializing network controller: Error creating default "bridge" network: failed to parse pool request for address space "LocalDefault" pool " subpool ": could not find an available, non-overlapping IPv6 address pool among the defaults to assign to the network
π To resolve this error, either remove the
--ipv6
flag (to preserve the same π³ behavior as in Docker 1.12.3 and earlier), or provide an IPv6 subnet as the π value of the--fixed-cidr-v6
flag.In a similar way, if you specify the
--ipv6
flag when creating a network 0οΈβ£ with the default IPAM driver, without providing an IPv6--subnet
, network creation will fail with the following message:Error response from daemon: failed to parse pool request for address space "LocalDefault" pool "" subpool "": could not find an available, non-overlapping IPv6 address pool among the defaults to assign to the network
π To resolve this, either remove the
--ipv6
flag (to preserve the same behavior π³ as in Docker 1.12.3 and earlier), or provide an IPv6 subnet as the value of the--subnet
flag.The network network creation will instead succeed if you use an external IPAM driver π which supports automatic allocation of IPv6 subnets.
β Runtime
- π Fix runC privilege escalation (CVE-2016-9962)
- π³ the systemd unit file (
-
v1.12.5 Changes
December 15, 2016IMPORTANT: Docker 1.12 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 theExecStart
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 theExecStart
directive (both in the main unit file, and in any drop-in files present).
After making those changes, run
sudo systemctl daemon-reload
, andsudo π³ systemctl restart docker
to reload changes and (re)start the docker daemon.NOTE: Docker 1.12.5 will correctly validate that either an IPv6 subnet is provided or that the IPAM driver can provide one when you specify the
--ipv6
option.If you are currently using the
--ipv6
option without specifying the π³--fixed-cidr-v6
option, the Docker daemon will refuse to start with the following message:Error starting daemon: Error initializing network controller: Error creating default "bridge" network: failed to parse pool request for address space "LocalDefault" pool " subpool ": could not find an available, non-overlapping IPv6 address pool among the defaults to assign to the network
π To resolve this error, either remove the
--ipv6
flag (to preserve the same π³ behavior as in Docker 1.12.3 and earlier), or provide an IPv6 subnet as the π value of the--fixed-cidr-v6
flag.In a similar way, if you specify the
--ipv6
flag when creating a network 0οΈβ£ with the default IPAM driver, without providing an IPv6--subnet
, network creation will fail with the following message:Error response from daemon: failed to parse pool request for address space "LocalDefault" pool "" subpool "": could not find an available, non-overlapping IPv6 address pool among the defaults to assign to the network
π To resolve this, either remove the
--ipv6
flag (to preserve the same behavior π³ as in Docker 1.12.3 and earlier), or provide an IPv6 subnet as the value of the--subnet
flag.The network network creation will instead succeed if you use an external IPAM driver π which supports automatic allocation of IPv6 subnets.
β Runtime
- π Fix race on sending stdin close event #29424
Networking
- π Fix panic in docker network ls when a network was created with
--ipv6
and no ipv6--subnet
in older docker versions #29416
Contrib
- π Fix compilation on Darwin #29370
- π³ the systemd unit file (
-
v1.12.4 Changes
December 12, 2016IMPORTANT: Docker 1.12 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 theExecStart
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 theExecStart
directive (both in the main unit file, and in any drop-in files present).
After making those changes, run
sudo systemctl daemon-reload
, andsudo π³ systemctl restart docker
to reload changes and (re)start the docker daemon.β Runtime
- π Fix issue where volume metadata was not removed #29083
- π Asynchronously close streams to prevent holding container lock #29050
- π Fix selinux labels for newly created container volumes #29050
- β Remove hostname validation #28990
- π Fix deadlocks caused by IO races #29095 #29141
- π³ Return an empty stats if the container is restarting #29150
- π Fix volume store locking #29151
- π³ Ensure consistent status code in API #29150
- π Fix incorrect opaque directory permission in overlay2 #29093
- π³ Detect plugin content and error out on
docker pull
#29297
Swarm Mode
- β‘οΈ Update Swarmkit #29047
- orchestrator/global: Fix deadlock on updates docker/swarmkit#1760
- on leader switchover preserve the vxlan id for existing networks docker/swarmkit#1773
- π³ Refuse swarm spec not named "default" #29152
Networking
- β‘οΈ Update libnetwork #29004 #29146
- Fix panic in embedded DNS docker/libnetwork#1561
- Fix unmarhalling panic when passing --link-local-ip on global scope network docker/libnetwork#1564
- Fix panic when network plugin returns nil StaticRoutes docker/libnetwork#1563
- Fix panic in osl.(*networkNamespace).DeleteNeighbor docker/libnetwork#1555
- Fix panic in swarm networking concurrent map read/write docker/libnetwork#1570
- Allow encrypted networks when running docker inside a container docker/libnetwork#1502
- Do not block autoallocation of IPv6 pool docker/libnetwork#1538
- Set timeout for netlink calls docker/libnetwork#1557
- Increase networking local store timeout to one minute docker/libkv#140
- Fix a panic in libnetwork.(*sandbox).execFunc docker/libnetwork#1556
- Honor icc=false for internal networks docker/libnetwork#1525
π² Logging
- β‘οΈ Update syslog log driver #29150
Contrib
- π³ the systemd unit file (
-
v1.12.3 Changes
October 26, 2016IMPORTANT: Docker 1.12 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 theExecStart
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 theExecStart
directive (both in the main unit file, and in any drop-in files present).
After making those changes, run
sudo systemctl daemon-reload
, andsudo π³ systemctl restart docker
to reload changes and (re)start the docker daemon.β Runtime
- π Fix ambient capability usage in containers (CVE-2016-8867) #27610
- π Prevent a deadlock in libcontainerd for Windows #27136
- π Fix error reporting in CopyFileWithTar #27075
- π³ Reset health status to starting when a container is restarted #27387
- π³ Properly handle shared mount propagation in storage directory #27609
- π Fix docker exec #27610
- π Fix backward compatibility with containerdβs events log #27693
Swarm Mode
- π Fix conversion of restart-policy #27062
- β‘οΈ Update Swarmkit #27554
- Avoid restarting a task that has already been restarted docker/swarmkit#1305
- Allow duplicate published ports when they use different protocols docker/swarmkit#1632
- Allow multiple randomly assigned published ports on service docker/swarmkit#1657
- Fix panic when allocations happen at init time docker/swarmkit#1651
Networking
- β‘οΈ Update libnetwork #27559
- Fix race in serializing sandbox to string docker/libnetwork#1495
- Fix race during deletion docker/libnetwork#1503
- Reset endpoint port info on connectivity revoke in bridge driver docker/libnetwork#1504
- Fix a deadlock in networking code docker/libnetwork#1507
- Fix a race in load balancer state docker/libnetwork#1512
π² Logging
- β‘οΈ Update fluent-logger-golang to v1.2.1 #27474
Contrib
- π³ the systemd unit file (
-
v1.12.2 Changes
October 11, 2016IMPORTANT: Docker 1.12 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 theExecStart
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 theExecStart
directive (both in the main unit file, and in any drop-in files present).
After making those changes, run
sudo systemctl daemon-reload
, andsudo π³ systemctl restart docker
to reload changes and (re)start the docker daemon.β Runtime
- π Fix a panic due to a race condition filtering
docker ps
#26049 - π³ Implement retry logic to prevent "Unable to remove filesystem" errors when using the aufs storage driver #26536
- Prevent devicemapper from removing device symlinks if
dm.use_deferred_removal
is enabled #24740 - π Fix an issue where the CLI did not return correct exit codes if a command was run with invalid options #26777
- π Fix a panic due to a bug in stdout / stderr processing in health checks #26507
- π Fix exec's children handling #26874
- π Fix exec form of HEALTHCHECK CMD #26208
Networking
- π Fix a daemon start panic on armv5 #24315
- π³ Vendor libnetwork #26879 #26953
- Avoid returning early on agent join failures docker/libnetwork#1473
- Fix service published port cleanup issues docker/libetwork#1432 docker/libnetwork#1433
- Recover properly from transient gossip failures docker/libnetwork#1446
- Disambiguate node names known to gossip cluster to avoid node name collision docker/libnetwork#1451
- Honor user provided listen address for gossip docker/libnetwork#1460
- Allow reachability via published port across services on the same host docker/libnetwork#1398
- Change the ingress sandbox name from random id to just
ingress_sbox
docker/libnetwork#1449 - Disable service discovery in ingress network docker/libnetwork#1489
Swarm Mode
- π Fix remote detection of a node's address when it joins the cluster #26211
- π³ Vendor SwarmKit #26765
- Bounce session after failed status update docker/swarmkit#1539
- Fix possible raft deadlocks docker/swarmkit#1537
- Fix panic and endpoint leak when a service is updated with no endpoints docker/swarmkit#1481
- Produce an error if the same port is published twice on
service create
orservice update
docker/swarmkit#1495 - Fix an issue where changes to a service were not detected, resulting in the service not being updated docker/swarmkit#1497
- Do not allow service creation on ingress network docker/swarmkit#1600
Contrib
- β‘οΈ Update the debian sysv-init script to use
dockerd
instead ofdocker daemon
#25869 - π Improve stability when running the docker client on MacOS Sierra #26875
- π Fix installation on debian stretch #27184
π Windows
- π Fix an issue where arrow-navigation did not work when running the docker client in ConEmu #25578
- π³ the systemd unit file (
-
v1.12.1 Changes
August 18, 2016IMPORTANT: Docker 1.12 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 theExecStart
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 theExecStart
directive (both in the main unit file, and in any drop-in files present).
After making those changes, run
sudo systemctl daemon-reload
, andsudo π³ systemctl restart docker
to reload changes and (re)start the docker daemon.Client
- β Add
Joined at
information innode inspect --pretty
#25512 - π Fix a crash on
service inspect
#25454 - π Fix issue preventing
service update --env-add
to work as intended #25427 - π Fix issue preventing
service update --publish-add
to work as intended #25428 - β Remove
service update --network-add
andservice update --network-rm
flags because this feature is not yet implemented in 1.12, but was inadvertently added to the client in 1.12.0 #25646
Contrib
- π³ Official ARM installation for Debian Jessie, Ubuntu Trusty, and Raspbian Jessie #24815 #25591
- β Add selinux policy per distro/version, fixing issue preventing successful installation on Fedora 24, and Oracle Linux #25334 #25593
Networking
- π Fix issue that prevented containers to be accessed by hostname with Docker overlay driver in Swarm Mode #25603 #25648
- π Fix random network issues on service with published port #25603
- π Fix unreliable inter-service communication after scaling down and up #25603
- π Fix issue where removing all tasks on a node and adding them back breaks connectivity with other services #25603
- π Fix issue where a task that fails to start results in a race, causing a
network xxx not found
error that masks the actual error #25550 - π³ Relax validation of SRV records for external services that use SRV records not formatted according to RFC 2782 #25739
π Plugins (experimental)
- π³ Make daemon events listen for plugin lifecycle events #24760
- π³ Check for plugin state before enabling plugin #25033
- β Remove plugin root from filesystem on
plugin rm
#25187 - π³ Prevent deadlock when more than one plugin is installed #25384
β Runtime
- π³ Mask join tokens in daemon logs #25346
- π Fix
docker ps --filter
causing the results to no longer be sorted by creation time #25387 - π Fix various crashes #25053
π Security
- β Add
/proc/timer_list
to the masked paths list to prevent information leak from the host #25630 - Allow systemd to run with only
--cap-add SYS_ADMIN
rather than having to also add--cap-add DAC_READ_SEARCH
or disabling seccomp filtering #25567
Swarm
- π Fix an issue where the swarm can get stuck electing a new leader after quorum is lost #25055
- π Fix unwanted rescheduling of containers after a leader failover #25017
- π Change swarm root CA key to P256 curve swarmkit#1376
- π Allow forced removal of a node from a swarm #25159
- π Fix connection leak when a node leaves a swarm swarmkit/#1277
- π³ Backdate swarm certificates by one hour to tolerate more clock skew swarmkit/#1243
- π³ Avoid high CPU use with many unschedulable tasks swarmkit/#1287
- π Fix issue with global tasks not starting up swarmkit/#1295
- π³ Garbage collect raft logs swarmkit/#1327
Volume
- π³ Persist local volume options after a daemon restart #25316
- π Fix an issue where the mount ID was not returned on volume unmount #25333
- π Fix an issue where a volume mount could inadvertently create a bind mount #25309
- π³
docker service create --mount type=bind,...
now correctly validates if the source path exists, instead of creating it #25494
- π³ the systemd unit file (
-
v1.12.0 Changes
July 28, 2016IMPORTANT: 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 theExecStart
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 theExecStart
directive (both in the main unit file, and in any drop-in files present).
After making those changes, run
sudo systemctl daemon-reload
, andsudo π³ 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
, anddocker-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 todocker 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 tonetwork ls
#22319 - β Adding
network
filter todocker ps --filter
#23300 - β Add
--link-local-ip
flag tocreate
,run
andnetwork 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}}
andnetwork inspect -f {{.ID}}
to address inconsistency with inspect output #23226
π Plugins (experimental)
- π New
plugin
command to manager plugins withinstall
,enable
,disable
,rm
,inspect
,set
subcommands #23446
- π³ the systemd unit file (