content/manuals/engine/release-notes/prior-releases.md
[!IMPORTANT]
On Linux distributions where
devicemapperwas the default storage driver, theoverlay2, oroverlayis now used by default (if the kernel supports it). To use devicemapper, you can manually configure the storage driver to use through the--storage-driverdaemon option, or by setting "storage-driver" in thedaemon.jsonconfiguration 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 rmcommand.
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:
/var/lib/docker/plugins/.docker system df #30378docker inspect when Swarm certificates were expired. #29246docker plugin upgrade #29414[!IMPORTANT]
On Linux distributions where
devicemapperwas the default storage driver, theoverlay2, oroverlayis now used by default (if the kernel supports it). To use devicemapper, you can manually configure the storage driver to use through the--storage-driverdaemon option, or by setting "storage-driver" in thedaemon.jsonconfiguration 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 rmcommand.
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:
/var/lib/docker/plugins/.docker build #24978--network to docker build #27702--label flag on docker build and docker run #26027make deb support for aarch64 #27625~/.docker/trust/private directory, not just under ~/.docker/trust/private/root_keys or ~/.docker/trust/private/tuf_keys docker/notary#981docker logs --tail returned less lines than expected #28203--attachable network support to enable docker run to work in swarm-mode overlay network #25962--publish option in docker service create #27917 and #28943FORWARD policy to DROP #28257--publish flag on docker run not working with IPv6 addresses #27860--fixed-cidr to not have the correct addresses #26659docker network inspect #26130docker network inspect for swarm overlay networks #28078docker plugin ls #25556-f/--format to docker plugin inspect #25990docker plugin create command #28164docker plugin install into two API call /privileges and /pull #28963docker stack deploy from a Compose file #27998--format flag to docker info #23808--name from docker volume create #23830docker stack ls #23886is-task ps filter #24411--env-file flag to docker service create #24844--format on docker stats #24987docker node ps default to self in swarm node #25214--group in docker service create #25317--no-trunc to service/node/stack ps output #25337ContainerAttachOptions so go clients can request to retrieve container logs as part of the attach process #26718--format flag to network ls and volume ls #23475docker inspect command to inspect any kind of resource #23614docker run and docker create, and add NanoCPUs to HostConfig #27958--entrypoint in docker run or docker create #23718docker image and docker container commands for more consistency #26025COMMAND column from service ls output #28029--format to docker events #26268docker node ps #26299docker images output #26303--dns-option to docker run #28186Manager Addresses in the output of docker info #28042docker images #27872--experimental daemon flag to enable experimental features, instead of shipping them in a separate build #27223--shutdown-timeout daemon flag to specify the default timeout (in seconds) to stop containers gracefully before daemon exit #23036--stop-timeout to specify the timeout value (in seconds) for individual containers to stop #22566--userland-proxy-path to allow configuring the userland proxy instead of using the hardcoded docker-proxy from $PATH #26882--init on dockerd and on docker run to use tini a zombie-reaping init process as PID 1 #26061 #28037--init-path to allow configuring the path to the docker-init binary #26941docker run --rm by moving it from the client to the daemon #20848--cpu-rt-period and --cpu-rt-runtime flags, allowing containers to run real-time threads when CONFIG_RT_GROUP_SCHED is enabled in the kernel #23430service tasks --filter #24850docker stats support in Windows #25737--pid=host and --net=host when --userns=host #25771container, image, and daemon operations #25820docker stats with NetworkDisabled=true #25905docker top support in Windows #25891getent #27599docker system command with df and prune subcommands for system resource management, as well as docker {container,image,volume,network} prune subcommands #26108 #27525 / #27525docker cp failing to copy to a container's volume dir on CentOS with devicemapper #28047--seccomp-profile daemon flag to specify a path to a seccomp profile that overrides the default #26276docker inspect when --default-ulimit is set on daemon #26405TERM environment variable on docker exec -t #26461--stop-signal setting upon docker kill #26464docker service inspect --pretty #26906docker service ps output more bearable by shortening service IDs in task names #28088docker node ps default to the current node #25214--dns, --dns-opt, and --dns-search to service create. #27567--force to docker service update #27596--health-* and --no-healthcheck flags to docker service create and docker service update #27369-q to docker service ps #27654docker service ls #27710--name flag from docker service update. This flag is only functional on docker service create, so was removed from the update command #26988--hostname to docker service create #27857--host to docker service create, and --host-add, --host-rm to docker service update #28031--tty flag to docker service create/update #28076--update-max-failure-ratio, --update-monitor and --rollback flags to docker service update #26421docker swarm init running inside a container #26457docker service logs command to view logs for a service #28089docker service create and update #28173-f) flag for docker node rm --force and docker swarm leave --force #28196--max-snapshots, --snapshot-interval) #27997--force flag in docker volume rm to forcefully purge the data of the volume that has already been deleted #23436docker volume inspect to show all options used when creating the volume #26671/sys/firmware/** from being accessed with apparmor #26618docker daemon command as deprecated. The daemon is moved to a separate binary (dockerd), and should be used instead #26834repo:shortid syntax on docker pull #27207d_type for overlay and overlay2 storage drivers #27433MAINTAINER in Dockerfile #25466filter param for endpoint /images/json #27872NetworkSettings #28437[!IMPORTANT]
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 serviceif;
- 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 theExecStartdirective
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:
Requires=docker.socket directive from the /usr/lib/systemd/system/docker.service file if present-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.
[!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
--ipv6option.
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
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 creation will instead succeed if you use an external IPAM driver which supports automatic allocation of IPv6 subnets.
[!IMPORTANT]
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 serviceif;
- 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 theExecStartdirective
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:
Requires=docker.socket directive from the /usr/lib/systemd/system/docker.service file if present-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.
[!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
--ipv6option.
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
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.
--ipv6 and no ipv6 --subnet in older docker versions #29416[!IMPORTANT]
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 serviceif;
- 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 theExecStartdirective
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:
Requires=docker.socket directive from the /usr/lib/systemd/system/docker.service file if present-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.
docker pull #29297osl.(*networkNamespace).DeleteNeighbor docker/libnetwork#1555libnetwork.(*sandbox).execFunc docker/libnetwork#1556[!IMPORTANT]
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 theExecStartdirective
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:
Requires=docker.socket directive from the /usr/lib/systemd/system/docker.service file if present-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]
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 serviceif;
- 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 theExecStartdirective
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:
Requires=docker.socket directive from the /usr/lib/systemd/system/docker.service file if present-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.
docker ps #26049dm.use_deferred_removal is enabled #24740ingress_sbox docker/libnetwork#1449service create or service update docker/swarmkit#1495dockerd instead of docker daemon #25869[!IMPORTANT]
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 serviceif;
- 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 theExecStartdirective
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:
Requires=docker.socket directive from the /usr/lib/systemd/system/docker.service file if present-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.
Joined at information in node inspect --pretty #25512service inspect #25454service update --env-add to work as intended #25427service update --publish-add to work as intended #25428service update --network-add and service 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 #25646network xxx not found error that masks the actual error #25550plugin rm #25187docker ps --filter causing the results to no longer be sorted by creation time #25387/proc/timer_list to the masked paths list to prevent information leak from the host #25630--cap-add SYS_ADMIN rather than having to also add --cap-add DAC_READ_SEARCH or disabling seccomp filtering #25567docker service create --mount type=bind,... now correctly validates if the source path exists, instead of creating it #25494[!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 serviceif;
- 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 theExecStartdirective
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:
Requires=docker.socket directive from the /usr/lib/systemd/system/docker.service file if present-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
dockerinstallation now has two additional binaries;dockerd, anddocker-proxy. If you have scripts for installingdocker, make sure to update them accordingly.
HEALTHCHECK Dockerfile instruction to support user-defined healthchecks #23218SHELL Dockerfile instruction to specify the default shell when using the shell form for commands in a Dockerfile #22489#escape= Dockerfile directive to support platform-specific parsing of file paths in Dockerfile #22268.dockerignore #23111Dockerfile and .dockerignore if exist #23234ARG to match Linux #22508--max-concurrent-downloads and --max-concurrent-uploads daemon flags useful for situations where network connections don't support multiple downloads/uploads #22445ALL_PROXY environment variable #22316docker load #23377--details option to docker logs to also display log tags #21889rfc5424micro to allow microsecond resolution in syslog timestamp #21844docker/ prefix from log messages tag and replace it with {{.DaemonName}} so that users have the option of changing the prefix #22384driver filter to network ls #22319network filter to docker ps --filter #23300--link-local-ip flag to create, run and network connect to specify a container's link-local address #23415run options --dns and --net=host are no longer mutually exclusive #22408network inspect -f {{.Id}} and network inspect -f {{.ID}} to address inconsistency with inspect output #23226plugin command to manager plugins with install, enable, disable, rm, inspect, set subcommands #23446docker (client) and dockerd (daemon) #20639before and since filters to docker images --filter #22908--limit option to docker search #23107--filter option to docker search #22369docker info output #21172 #23520docker info output #20410docker info #21945docker run -i --restart from hanging on exit #22777stats from HumanSize to BytesSize #21773docker-proxy) #23312--live-restore daemon flag to keep containers running when daemon shuts down, and regain control on startup #23213--add-runtime daemon flag) and select one with --runtime on create and run #22983overlay2 graphdriver for Linux 4.0+ with multiple lower directory support #22126docker run --pid=container:<id> #22481daemon reload event when the daemon reloads its configuration #22590trace capability in the pprof profiler to show execution traces in binary form #22715detach event #22898--sysctl #19265--storage-opt flag to create and run allowing to set size on devicemapper #19367--oom-score-adjust daemon flag with a default value of -500 making the daemon less likely to be killed before containers #24516-c short alias of --cpu-shares on run, build, create, update #22621docker ps -a -f exited=0 #21947--detach-keys whereby input matching a prefix of the detach key was not preserved #22943--privileged mode #22993/etc/hosts, /etc/resolv.conf, /etc/hostname are no longer SELinux-relabeled #22993--tmpfs behavior regarding mount options #22438on-failure restart policy when daemon restarts #20853stats when a container is using another container's network #21904swarm command to manage swarms with init, join, join-token, leave, update subcommands #23361 #24823service command to manage swarm-wide services with create, inspect, update, rm, ps subcommands #23361 #25140node command to manage nodes with accept, promote, demote, inspect, update, ps, ls and rm subcommands #23361 #25140stack and deploy commands to manage and deploy multi-service applications #23522 #25140Status field #21006DOCKER_CONTENT_TRUST_OFFLINE_PASSPHRASE and DOCKER_CONTENT_TRUST_TAGGING_PASSPHRASE have been renamed
to DOCKER_CONTENT_TRUST_ROOT_PASSPHRASE and DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE respectively #22574syslog-tag, gelf-tag, fluentd-tag log option in favor of the more generic tag one #22620-f/--force flag on docker tag #23090/containers/<id|name>/copy endpoint #22149docker ps flags --since and --before #22138docker import #23273docker inspect/ps/port (#22997)docker build (#23032)--user parameter (#22998)docker ps to hang on CentOS when using devicemapper (#22168, #23067)docker exec into a container when using devicemapper (#22168, #23067)application/vnd.docker.container.image.v1+json (#21949)docker build as arguments as an implicit LABEL command at the end of the processed Dockerfile (#22184)/var/run would prevent other containers from being removed (#22256)memory-swap and memory value together (#22255)/auth endpoint would not initialize serveraddress if it is not provided (#22254)docker would not correctly clean up after docker exec (#22121)docker stats commands (#22120)`[!IMPORTANT]
With Docker 1.11, a Linux Docker installation is now made of 4 binaries (
docker,docker-containerd,docker-containerd-shimanddocker-runc). If you have scripts relying ondockerbeing a single static binaries, make sure to update them. Interaction with the daemon stay the same otherwise, the usage of the other binaries should be transparent. A Windows Docker installation remains a single binary,docker.exe.
WORKDIR command (#21033): separator for security option has been deprecated. = should be used instead (#21232)pull, build, push, login and search operations (#21306, #21373)docker stats --no-stream output could be all 0s (#20803)docker stats command (#20792)docker ps now supports displaying the list of volumes mounted inside a container (#20017)docker info now also reports Docker's root directory location (#19986)docker ps no longer shows exported port for stopped containers (#19483)docker login now handles token using the implementation found in docker/distribution (#20832)docker login will no longer prompt for an email (#20565)gelf-compression-type and gelf-compression-level options (#19831)--raw-logs options (#19794)etwlogs (#19689)fluentd-address, fluentd-buffer-limit, fluentd-retry-wait, fluentd-max-retries and fluentd-async-connect (#19439)gcplogs logging driver. (#18766)docker save a subsequent docker load will correctly restore their parent/child relationship (#21385)dockremap is now created as a system user (#21266)docker info now reports the value of cgroup KernelMemory or emits a warning if it is not supported (#20863)docker info now also reports the cgroup driver in use (#20388)dockerinit is no more (#19490,#19851)docker network inspect will now report all endpoints whether they have an active container or not (#21160)docker network ls is now sorted by network name (#20383)default name (#19431)docker network inspect returns whether a network is internal or not (#19357)docker network create --ipv6). This shows up as a new EnableIPv6 field in docker network inspect (#17513)userns is enabled (#21383)docker inspect <image-id> will now expose the rootfs layers (#21370)top implementation (#21354)udev sync is not available (#21097)204 (i.e http.StatusNoContent) code when it successfully deleted a network (#20977)dm.min_free_space option. If the mapped device free space reaches the passed value, new device creation will be prohibited. (#20786)--security-opt=no-new-privileges flag (#20727)--device option will now correctly resolves symlinks (#20684)containerd and runc to spawn containers. (#20662)--hostname flag when --net=host (#20177)--userns-remap if both --privileged and the new --userns=host flag are specified (#20111)docker update learned how to change a container restart policy (#19116)docker inspect now also returns a new State field containing the container state in a human readable way (i.e. one of created, restarting, running, paused, exited or dead)(#18966)pids-limit flags. NOTE: This requires CGROUP_PIDS=y to be in the kernel configuration. (#18697)docker load now has a --quiet option to suppress the load output (#20078)pcp_pmcd_t selinux type were given management access to /var/lib/docker(/.*)? (#21370)restart_syscall, copy_file_range, mlock2 joined the list of allowed calls in the default seccomp profile (#21117, #21262)send, recv and x32 were added to the list of allowed syscalls and arch in the default seccomp profile (#19432)docker volume ls is now sorted by volume name (#20389)mount tool (#20262)docker run -v now accepts a new flag nocopy. This tells the runtime not to copy the container path content into the volume (which is the default behavior) (#21223)AttachStdin and Detach #20647personality syscall being blocked by the default seccomp profile.ipc syscall being blocked by the default seccomp profile.subuid or subgid files contain comments #20725--read-only when mounting /dev/mqueue #20333docker cp when userns is used #20446true #20471docker logs -f #20522docker ps --filter before=... to not show stopped containers without providing -a flag #20135userland-proxy=false #20181[!IMPORTANT]
Docker 1.10 uses a new content-addressable storage for images and layers.
A migration is performed the first time docker is run, and can take a significant amount of time depending on the number of images present. Refer to this page on the wiki for more information: https://github.com/docker/docker/wiki/Engine-v1.10.0-content-addressability-migration
We also released a cool migration utility that enables you to perform the migration before updating to reduce downtime.
Engine 1.10 migrator can be found on Docker Hub: https://hub.docker.com/r/docker/v1.10-migrator/
docker update command that allows updating resource constraints on running containers #15078--tmpfs flag to docker run to create a tmpfs mount in a container #13587--format flag to docker images command #17692SIGHUP signal #18587--blkio-weight-device flag to docker run #13959--device-read-bps and --device-write-bps flags to docker run #14466--device-read-iops and --device-write-iops flags to docker run #15879--oom-score-adj flag to docker run #16277--detach-keys flag to attach, run, start and exec commands to override the default key sequence that detaches from a container #15666--shm-size flag to run, create and build to set the size of /dev/shm #16168docker info #19249OSType and Architecture in docker info #17478--cgroup-parent flag on daemon to set cgroup parent for all containers #19062-L flag to docker cp to follow symlinks #16613status=dead filter for docker ps #17908docker run exit codes to distinguish between runtime and application errors #14012docker events --since and --until to support nanoseconds and timezones #17495--all/-a flag to stats to include both running and stopped containers #16742cgroupfs #17704build -t #17115build #15780OPTIONS request against any url, thus fixing issue with CORS #19569--quiet flag on docker build to actually be quiet #17428docker images --filter dangling=false to now show all non-dangling images #19326exec during container restart #19722--storage-opt dm.basesize will now increase the base device size on daemon restart #19123--userns-remap flag to daemon to support user namespaces (previously in experimental) #19187--security-opt #17989--authorization-plugin flag to daemon to customize ACLs #15365docker load/docker save tarballs now also contain content-addressable image configurations.
For more information: https://github.com/docker/docker/wiki/Engine-v1.10.0-content-addressability-migration/etc/hosts #19198--net-alias on run and --alias on network connect #19242--ip and --ip6 on run and network connect to support custom IP addresses for a container in a network #19001--ipam-opt to network create for passing custom IPAM options #17316--internal flag to network create to restrict external access to and from the network #19276kv.path option to --cluster-store-opt #19167discovery.heartbeat and discovery.ttl options to --cluster-store-opt to configure discovery TTL and heartbeat timer #18204--format flag to network inspect #17481--link to network connect to provide a container-local alias #19229--force to network disconnect to force container to be disconnected from network #19317--link is now supported on docker run for containers in user-defined network #19229docker network rm to allow removing multiple networks #17489network inspect #17615network inspect #17316--filter flag to network ls to hide predefined networks #17782--net=host #19573docker logs --since and --until to support nanoseconds and time #17495ls and inspect endpoints to volume plugin API #16534
Existing plugins need to make use of these new APIs to satisfy users' expectation
For that, use the new MIME type application/vnd.docker.plugins.v1.2+json #19549docker volumes ls --dangling=false to now show all non-dangling volumes #19671** in .dockerignore to wildcard multiple levels of directories #17090DOCKER_API_VERSION environment-variable #15964--exec-driver daemon flag, because it is no longer in use #17700-rm; use --rm instead) #17724-f flag for docker tag #18350docker stats performance regression (#17638)docker logs if --log-driver=none (#17767)z option (#17450, #17834)docker login on windows (#17738)docker inspect output when not connected to daemon (#17715)docker inspect -f {{.HostConfig.Dns}} somecontainer (#17680)--net (#17558)host network (#17476)--fixed-cidr issue when gateway ip falls in ip-range and ip-range is
not the first block in the network (#17853)IPv6 generation from MAC address on default bridge network (#17890)docker stats now returns block IO metrics (#15005)docker stats now details network stats per interface (#15786)ancestor=<image> filter to docker ps --filter flag to filter
containers based on their ancestor images (#14570)label=<somelabel> filter to docker ps --filter to filter containers
based on label (#16530)--kernel-memory flag to docker run (#14006)--message flag to docker import allowing to specify an optional
message (#15711)--privileged flag to docker exec (#14113)--stop-signal flag to docker run allowing to replace the container
process stopping signal (#15307)unless-stopped restart policy (#15348)docker inspect (#15796)RepoTags and RepoDigests field to /images/{name:.*}/json (#17275)/container/ps endpoint from the API (#15972)/exec/<name>/start (#16250)--oom-kill-disable is set (#16235)ro option (#14965)rmi performance (#16890)docker inspect (#17284)-c short flag variant for --cpu-shares in docker run (#16271)docker import to import from local files (#11907)STOPSIGNAL Dockerfile instruction allowing to set a different
stop-signal for the container process (#15307)ARG Dockerfile instruction and a --build-arg flag to docker build
that allows to add build-time environment variables (#15182)docker network exits experimental and is part of standard release (#16645)--cluster-store and --cluster-advertise for built-in nodes discovery (#16229)--cluster-store-opt for setting up TLS settings (#16644)--dns-opt to the daemon (#16031)NetworkSettings fields in API v1.21: EndpointID, Gateway,
GlobalIPv6Address, GlobalIPv6PrefixLen, IPAddress, IPPrefixLen, IPv6Gateway and MacAddress.
Those are now specific to the bridge network. Use NetworkSettings.Networks to inspect
the networking settings of a container per network.volume subcommand and API (#14242)awslogs logging driver for Amazon CloudWatch (#15495)tag log option to allow customizing container/image
information passed to driver (#15384)docker logs endpoint for the journald driver (#13707)docker search now works with partial names (#16509)offline to
root and tagging to repository (#16894)DOCKER_CONTENT_TRUST_OFFLINE_PASSPHRASE and
DOCKER_CONTENT_TRUST_TAGGING_PASSPHRASE (#16894)--disable-legacy-registry to prevent a daemon from using a v1 registry-q flag in docker ps properly when there is a default format.docker ps with --formatdocker -d with new subcommand docker daemondocker -Hdocker events as --since/--untildocker inspectdocker import to load from local filesdocker cpdocker inspectdocker rmi of dangling images safe while pullingdocker kill returns error when container is not runningdocker exec--bridge=none not to configure the network bridge--userland-proxy=false flagexec command supports the -u|--user flag to specify the new process owner--default-gateway and --default-gateway-v6 flagsdocker run using --cpu-quotadocker run using--blkio-weightdocker logs command supports a --since argumentdocker run --uts=host--cgroup-parent, --cpu-period, --cpu-quota, --cpuset-cpus, --cpuset-memsdocker build --cpu-shares=100 --memory=1024m...commit --change to apply specified Dockerfile instructions while committing the imageimport --change to apply specified Dockerfile instructions while importing the image--cgroup-parent for specifying a parent cgroup to place container cgroup withinjson-file, syslog, or none--ulimit to set the ulimit on a container--default-ulimit option on the daemon which applies to all created containers (and overwritten by --ulimit on run)docker build can be specified with the -f flagFROM scratch instruction is now interpreted as a no-base specifierdocker push for images with a majority of already existing layersdocker stats commandrename endpoint and the associated docker rename commandinspect endpoint show the ID of exec commands running in this containerinspect endpoint show the number of times Docker auto-restarted the containerevents endpoint: ‘OOM’ (container died with out of memory), ‘exec_create’, and ‘exec_start'docker run command can take the --pid=host flag to use the host PID namespace, which makes it possible for example to debug host processes using containerized debugging toolsdocker run command can take the --read-only flag to make the container’s root filesystem mounted as readonly, which can be used in combination with volumes to force a container’s processes to only write to locations that will be persisteddocker run using the --memory-swap flag/etc/resolv.conf file when restarteddocker info), applied with
new -label daemon flagENV in Dockerfile of the form:
ENV name=value name2=value2...docker info now returns an ID and Name fielddocker cp now supports copying from container volumesdocker tag, so it honors --force when overriding a tag for existing
image.docker cp when destination is the current directorydocker ps -f exited=1--volumes-from references a container that failed to start--insecure-registry now accepts CIDR notation such as 10.1.0.0/16--insecure-registry flag--insecure-registry is specified--iptables=false not automatically setting --ip-masq=false$ for environment variablesonbuild Dockerfile instructionENV, ADD, COPY, WORKDIR, EXPOSE, VOLUME and USERexec allows you to run additional processes inside existing containerscreate gives you the ability to create a container via the CLI without executing a process--security-opts options to allow user to customize container labels and apparmor profilesps filterssave--cap-add and --cap-drop to tweak what linux capability you want--device to use devices in containersdocker search on private registriesexited filter to docker ps --filterdocker rm -f now kills instead of stop--dns flag.dockerignore supportdocker commit--tail to docker logsdocker buildDockerfiles/ as source of docker run -vdocker savedocker inspectdocker commitstart and stop endpointsONBUILD instruction passed to grandchildren-h and --net=none--privilegeddocker cp on Mac OS XCOPY Dockerfile instruction to allow copying a local file from the context into the container without ever extracting if the file is a tar fileADDpause and unpause commands to allow pausing and unpausing of containers using cgroup freezerimages command has a -f/--filter option to filter the list of images--force-rm to clean up after a failed buildlatest tag if not specified--net flag to allow advanced network configuration such as host networking so that containers can use the host's network interfacesdocker ps to the documentation.docker restart to the documentation.docker images to the docs.--lxc-conf is lxc only.docker load.docker run -a does in the docs.docker pull.docker pull.docker info even when not in debug mode.docker ps.docker rmi.docker ps.docker ps.docker load.docker version.docker images --tree and docker images --viz.docker insert.docker commit -run.docker cp.docker pull.docker info even when not in debug mode.onbuild from and onbuild maintainer triggers.--rm the default for docker build.docker ps.docker cp.tcp:// default to 127.0.0.1:4243 and remove the default port for tcp.--run in docker commit. This makes docker commit --run work again.docker push.docker run -it).docker rmi.docker run -i -t (issue #3336).-f flag to docker rm to force removal of running containers.DOCKER_RAMDISK environment variable to make Docker work when the root is on a ramdisk.docker build --rm. This adds a missing error check to ensure failures to remove containers are detected and reporteddocker commit. This makes docker commit store --run in the image configurationdocker cp stream is closed properlyImages and containers can be removed much faster
Building an image from source with docker build is now much faster
The Docker daemon starts and stops much faster
The memory footprint of many common operations has been reduced, by streaming files instead of buffering them in memory, fixing memory leaks, and fixing various suboptimal memory allocations
Several race conditions were fixed, making Docker more stable under very high concurrency load. This makes Docker more stable and less likely to crash and reduces the memory footprint of many common operations
All packaging operations are now built on the Go language’s standard tar implementation, which is bundled with Docker itself. This makes packaging more portable across host distributions, and solves several issues caused by quirks and incompatibilities between different distributions of tar
Docker can now create, remove and modify larger numbers of containers and images graciously thanks to more aggressive releasing of system resources. For example the storage driver API now allows Docker to do reference counting on mounts created by the drivers With the ongoing changes to the networking and execution subsystems of docker testing these areas have been a focus of the refactoring. By moving these subsystems into separate packages we can test, analyze, and monitor coverage and quality of these packages
Many components have been separated into smaller sub-packages, each with a dedicated test suite. As a result the code is better-tested, more readable and easier to change
The ADD instruction now supports caching, which avoids unnecessarily re-uploading the same source content again and again when it hasn’t changed
The new ONBUILD instruction adds to your image a “trigger” instruction to be executed at a later time, when the image is used as the base for another build
Docker now ships with an experimental storage driver which uses the BTRFS filesystem for copy-on-write
Docker is officially supported on Mac OS X
The Docker daemon supports systemd socket activation
-mtu flag in several GCE zonesdocker runlxc-checkconfig as a way to check for some of the necessary kernel configuration-a to our Go build flags, removing the need for recompiling the stdlib manuallydocker pull progress bar display issuesdocker top in pure Go to work more consistently, and even inside Docker-in-Docker (thus removing the shell injection vulnerability present in some versions of lxc-ps)-H unix:// to work similarly to -H tcp:// by inserting the default values for missing portions-g to work as expecteddocker images -tree-S option to external tar invocation for more efficient spare file handling-mtu option to Docker daemon for configuring MTUdocker build to exit with a non-zero exit code on errorDOCKER_HOST environment variable to configure the client -H flag without specifying it manually for every invocationdocker log -f to stream logsdocker inspectdocker build now returns the correct exit codedocker port to display correct portdocker build now check that the dockerfile exists client sidedocker attach now returns the correct exit codedocker rm with volumes(syscall.O_NOCTTY)apt-get install curl to Ubuntu docspostgresql_service.rstvagrant up is actually doingdocker login commanddocker start set error code upon errordocker run set the same error code as the process starteddocker versionsh process"ps args to docker topdocker run -n and docker -d -b=none#311docker runt ignore last line in Dockerfile when it doesnt end with \nC-p C-qInitial public release