# Docker Engine prior releases


## 1.13.1 (2017-02-08)

> [!IMPORTANT]
>
> On Linux distributions where `devicemapper` was the default storage driver, the `overlay2`, or `overlay` 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 the `daemon.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

* Do not require a custom build of tini [#28454](https://github.com/docker/docker/pull/28454)
* Upgrade to Go 1.7.5 [#30489](https://github.com/docker/docker/pull/30489)

### Remote API (v1.26) & Client

+ Support secrets in docker stack deploy with compose file [#30144](https://github.com/docker/docker/pull/30144)

### Runtime

* Fix size issue in `docker system df` [#30378](https://github.com/docker/docker/pull/30378)
* Fix error on `docker inspect` when Swarm certificates were expired. [#29246](https://github.com/docker/docker/pull/29246)
* Fix deadlock on v1 plugin with activate error [#30408](https://github.com/docker/docker/pull/30408)
* Fix SELinux regression [#30649](https://github.com/docker/docker/pull/30649)

### Plugins

* Support global scoped network plugins (v2) in swarm mode [#30332](https://github.com/docker/docker/pull/30332)
+ Add `docker plugin upgrade` [#29414](https://github.com/docker/docker/pull/29414)

### Windows

* Fix small regression with old plugins in Windows [#30150](https://github.com/docker/docker/pull/30150)
* Fix warning on Windows [#30730](https://github.com/docker/docker/pull/30730)

## 1.13.0 (2017-01-18)

> [!IMPORTANT]
>
> On Linux distributions where `devicemapper` was the default storage driver, the `overlay2`, or `overlay` 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 the `daemon.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](https://github.com/docker/docker/pull/26839)
+ (experimental) Add option to squash image layers to the FROM image after successful builds [#22641](https://github.com/docker/docker/pull/22641)
* Fix dockerfile parser with empty line after escape [#24725](https://github.com/docker/docker/pull/24725)
- Add step number on `docker build` [#24978](https://github.com/docker/docker/pull/24978)
+ Add support for compressing build context during image build [#25837](https://github.com/docker/docker/pull/25837)
+ add `--network` to `docker build` [#27702](https://github.com/docker/docker/pull/27702)
- Fix inconsistent behavior between `--label` flag on `docker build` and `docker run` [#26027](https://github.com/docker/docker/issues/26027)
- Fix image layer inconsistencies when using the overlay storage driver [#27209](https://github.com/docker/docker/pull/27209)
* Unused build-args are now allowed. A warning is presented instead of an error and failed build [#27412](https://github.com/docker/docker/pull/27412)
- Fix builder cache issue on Windows [#27805](https://github.com/docker/docker/pull/27805)
+ Allow `USER` in builder on Windows [#28415](https://github.com/docker/docker/pull/28415)
+ Handle env case-insensitive on Windows [#28725](https://github.com/docker/docker/pull/28725)

### Contrib

+ Add support for building docker debs for Ubuntu 16.04 Xenial on PPC64LE [#23438](https://github.com/docker/docker/pull/23438)
+ Add support for building docker debs for Ubuntu 16.04 Xenial on s390x [#26104](https://github.com/docker/docker/pull/26104)
+ Add support for building docker debs for Ubuntu 16.10 Yakkety Yak on PPC64LE [#28046](https://github.com/docker/docker/pull/28046)
- Add RPM builder for VMWare Photon OS [#24116](https://github.com/docker/docker/pull/24116)
+ Add shell completions to tgz [#27735](https://github.com/docker/docker/pull/27735)
* Update the install script to allow using the mirror in China [#27005](https://github.com/docker/docker/pull/27005)
+ Add DEB builder for Ubuntu 16.10 Yakkety Yak [#27993](https://github.com/docker/docker/pull/27993)
+ Add RPM builder for Fedora 25 [#28222](https://github.com/docker/docker/pull/28222)
+ Add `make deb` support for aarch64 [#27625](https://github.com/docker/docker/pull/27625)

### Distribution

* Update notary dependency to 0.4.2 (full changelogs [here](https://github.com/docker/notary/releases/tag/v0.4.2)) [#27074](https://github.com/docker/docker/pull/27074)
  - Support for compilation on windows [docker/notary#970](https://github.com/docker/notary/pull/970)
  - Improved error messages for client authentication errors [docker/notary#972](https://github.com/docker/notary/pull/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](https://github.com/docker/notary/pull/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](https://github.com/docker/notary/pull/982)
  - Improve root validation and yubikey debug logging [docker/notary#858](https://github.com/docker/notary/pull/858) [docker/notary#891](https://github.com/docker/notary/pull/891)
  - Warn if certificates for root or delegations are near expiry [docker/notary#802](https://github.com/docker/notary/pull/802)
  - Warn if role metadata is near expiry [docker/notary#786](https://github.com/docker/notary/pull/786)
  - Fix passphrase retrieval attempt counting and terminal detection [docker/notary#906](https://github.com/docker/notary/pull/906)
- Avoid unnecessary blob uploads when different users push same layers to authenticated registry [#26564](https://github.com/docker/docker/pull/26564)
* Allow external storage for registry credentials [#26354](https://github.com/docker/docker/pull/26354)

### Logging

* Standardize the default logging tag value in all logging drivers [#22911](https://github.com/docker/docker/pull/22911)
- Improve performance and memory use when logging of long log lines [#22982](https://github.com/docker/docker/pull/22982)
+ Enable syslog driver for windows [#25736](https://github.com/docker/docker/pull/25736)
+ Add Logentries Driver [#27471](https://github.com/docker/docker/pull/27471)
+ Update of AWS log driver to support tags [#27707](https://github.com/docker/docker/pull/27707)
+ Unix socket support for fluentd [#26088](https://github.com/docker/docker/pull/26088)
* Enable fluentd logging driver on Windows [#28189](https://github.com/docker/docker/pull/28189)
- Sanitize docker labels when used as journald field names [#23725](https://github.com/docker/docker/pull/23725)
- Fix an issue where `docker logs --tail` returned less lines than expected [#28203](https://github.com/docker/docker/pull/28203)
- Splunk Logging Driver: performance and reliability improvements [#26207](https://github.com/docker/docker/pull/26207)
- Splunk Logging Driver: configurable formats and skip for verifying connection [#25786](https://github.com/docker/docker/pull/25786)

### Networking

+ Add `--attachable` network support to enable `docker run` to work in swarm-mode overlay network [#25962](https://github.com/docker/docker/pull/25962)
+ Add support for host port PublishMode in services using the `--publish` option in `docker service create` [#27917](https://github.com/docker/docker/pull/27917) and [#28943](https://github.com/docker/docker/pull/28943)
+ Add support for Windows server 2016 overlay network driver (requires upcoming ws2016 update) [#28182](https://github.com/docker/docker/pull/28182)
* Change the default `FORWARD` policy to `DROP` [#28257](https://github.com/docker/docker/pull/28257)
+ Add support for specifying static IP addresses for predefined network on windows [#22208](https://github.com/docker/docker/pull/22208)
- Fix `--publish` flag on `docker run` not working with IPv6 addresses [#27860](https://github.com/docker/docker/pull/27860)
- Fix inspect network show gateway with mask [#25564](https://github.com/docker/docker/pull/25564)
- Fix an issue where multiple addresses in a bridge may cause `--fixed-cidr` to not have the correct addresses [#26659](https://github.com/docker/docker/pull/26659)
+ Add creation timestamp to `docker network inspect` [#26130](https://github.com/docker/docker/pull/26130)
- Show peer nodes in `docker network inspect` for swarm overlay networks [#28078](https://github.com/docker/docker/pull/28078)
- Enable ping for service VIP address [#28019](https://github.com/docker/docker/pull/28019)

### Plugins

- Move plugins out of experimental [#28226](https://github.com/docker/docker/pull/28226)
- Add `--force` on `docker plugin remove` [#25096](https://github.com/docker/docker/pull/25096)
* Add support for dynamically reloading authorization plugins [#22770](https://github.com/docker/docker/pull/22770)
+ Add description in `docker plugin ls` [#25556](https://github.com/docker/docker/pull/25556)
+ Add `-f`/`--format` to `docker plugin inspect` [#25990](https://github.com/docker/docker/pull/25990)
+ Add `docker plugin create` command [#28164](https://github.com/docker/docker/pull/28164)
* Send request's TLS peer certificates to authorization plugins [#27383](https://github.com/docker/docker/pull/27383)
* Support for global-scoped network and ipam plugins in swarm-mode [#27287](https://github.com/docker/docker/pull/27287)
* Split `docker plugin install` into two API call `/privileges` and `/pull` [#28963](https://github.com/docker/docker/pull/28963)

### Remote API (v1.25) & Client

+ Support `docker stack deploy` from a Compose file [#27998](https://github.com/docker/docker/pull/27998)
+ (experimental) Implement checkpoint and restore [#22049](https://github.com/docker/docker/pull/22049)
+ Add `--format` flag to `docker info` [#23808](https://github.com/docker/docker/pull/23808)
* Remove `--name` from `docker volume create` [#23830](https://github.com/docker/docker/pull/23830)
+ Add `docker stack ls` [#23886](https://github.com/docker/docker/pull/23886)
+ Add a new `is-task` ps filter [#24411](https://github.com/docker/docker/pull/24411)
+ Add `--env-file` flag to `docker service create` [#24844](https://github.com/docker/docker/pull/24844)
+ Add `--format` on `docker stats` [#24987](https://github.com/docker/docker/pull/24987)
+ Make `docker node ps` default to `self` in swarm node [#25214](https://github.com/docker/docker/pull/25214)
+ Add `--group` in `docker service create` [#25317](https://github.com/docker/docker/pull/25317)
+ Add `--no-trunc` to service/node/stack ps output [#25337](https://github.com/docker/docker/pull/25337)
+ Add Logs to `ContainerAttachOptions` so go clients can request to retrieve container logs as part of the attach process [#26718](https://github.com/docker/docker/pull/26718)
+ Allow client to talk to an older server [#27745](https://github.com/docker/docker/pull/27745)
* Inform user client-side that a container removal is in progress [#26074](https://github.com/docker/docker/pull/26074)
+ Add `Isolation` to the /info endpoint [#26255](https://github.com/docker/docker/pull/26255)
+ Add `userns` to the /info endpoint [#27840](https://github.com/docker/docker/pull/27840)
- Do not allow more than one mode be requested at once in the services endpoint [#26643](https://github.com/docker/docker/pull/26643)
+ Add capability to /containers/create API to specify mounts in a more granular and safer way [#22373](https://github.com/docker/docker/pull/22373)
+ Add `--format` flag to `network ls` and `volume ls` [#23475](https://github.com/docker/docker/pull/23475)
* Allow the top-level `docker inspect` command to inspect any kind of resource [#23614](https://github.com/docker/docker/pull/23614)
+ Add --cpus flag to control cpu resources for `docker run` and `docker create`, and add `NanoCPUs` to `HostConfig` [#27958](https://github.com/docker/docker/pull/27958)
- Allow unsetting the `--entrypoint` in `docker run` or `docker create` [#23718](https://github.com/docker/docker/pull/23718)
* Restructure CLI commands by adding `docker image` and `docker container` commands for more consistency [#26025](https://github.com/docker/docker/pull/26025)
- Remove `COMMAND` column from `service ls` output [#28029](https://github.com/docker/docker/pull/28029)
+ Add `--format` to `docker events` [#26268](https://github.com/docker/docker/pull/26268)
* Allow specifying multiple nodes on `docker node ps` [#26299](https://github.com/docker/docker/pull/26299)
* Restrict fractional digits to 2 decimals in `docker images` output [#26303](https://github.com/docker/docker/pull/26303)
+ Add `--dns-option` to `docker run` [#28186](https://github.com/docker/docker/pull/28186)
+ Add Image ID to container commit event [#28128](https://github.com/docker/docker/pull/28128)
+ Add external binaries version to docker info [#27955](https://github.com/docker/docker/pull/27955)
+ Add information for `Manager Addresses` in the output of `docker info` [#28042](https://github.com/docker/docker/pull/28042)
+ Add a new reference filter for `docker images` [#27872](https://github.com/docker/docker/pull/27872)

### Runtime

+ Add `--experimental` daemon flag to enable experimental features, instead of shipping them in a separate build [#27223](https://github.com/docker/docker/pull/27223)
+ Add a `--shutdown-timeout` daemon flag to specify the default timeout (in seconds) to stop containers gracefully before daemon exit [#23036](https://github.com/docker/docker/pull/23036)
+ Add `--stop-timeout` to specify the timeout value (in seconds) for individual containers to stop [#22566](https://github.com/docker/docker/pull/22566)
+ Add a new daemon flag `--userland-proxy-path` to allow configuring the userland proxy instead of using the hardcoded `docker-proxy` from `$PATH` [#26882](https://github.com/docker/docker/pull/26882)
+ Add boolean flag `--init` on `dockerd` and on `docker run` to use [tini](https://github.com/krallin/tini) a zombie-reaping init process as PID 1 [#26061](https://github.com/docker/docker/pull/26061) [#28037](https://github.com/docker/docker/pull/28037)
+ Add a new daemon flag `--init-path` to allow configuring the path to the `docker-init` binary [#26941](https://github.com/docker/docker/pull/26941)
+ Add support for live reloading insecure registry in configuration [#22337](https://github.com/docker/docker/pull/22337)
+ Add support for storage-opt size on Windows daemons [#23391](https://github.com/docker/docker/pull/23391)
* Improve reliability of `docker run --rm` by moving it from the client to the daemon  [#20848](https://github.com/docker/docker/pull/20848)
+ Add support for `--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 [#23430](https://github.com/docker/docker/pull/23430)
* Allow parallel stop, pause, unpause [#24761](https://github.com/docker/docker/pull/24761) / [#26778](https://github.com/docker/docker/pull/26778)
* Implement XFS quota for overlay2 [#24771](https://github.com/docker/docker/pull/24771)
- Fix partial/full filter issue in `service tasks --filter` [#24850](https://github.com/docker/docker/pull/24850)
- Allow engine to run inside a user namespace [#25672](https://github.com/docker/docker/pull/25672)
- Fix a race condition between device deferred removal and resume device, when using the devicemapper graphdriver [#23497](https://github.com/docker/docker/pull/23497)
- Add `docker stats` support in Windows [#25737](https://github.com/docker/docker/pull/25737)
- Allow using `--pid=host` and `--net=host` when `--userns=host` [#25771](https://github.com/docker/docker/pull/25771)
+ (experimental) Add metrics (Prometheus) output for basic `container`, `image`, and `daemon` operations [#25820](https://github.com/docker/docker/pull/25820)
- Fix issue in `docker stats` with `NetworkDisabled=true` [#25905](https://github.com/docker/docker/pull/25905)
+ Add `docker top` support in Windows [#25891](https://github.com/docker/docker/pull/25891)
+ Record pid of exec'd process [#27470](https://github.com/docker/docker/pull/27470)
+ Add support for looking up user/groups via `getent` [#27599](https://github.com/docker/docker/pull/27599)
+ Add new `docker system` command with `df` and `prune` subcommands for system resource management, as well as `docker {container,image,volume,network} prune` subcommands [#26108](https://github.com/docker/docker/pull/26108) [#27525](https://github.com/docker/docker/pull/27525) / [#27525](https://github.com/docker/docker/pull/27525)
- Fix an issue where containers could not be stopped or killed by setting xfs max_retries to 0 upon ENOSPC with devicemapper [#26212](https://github.com/docker/docker/pull/26212)
- Fix `docker cp` failing to copy to a container's volume dir on CentOS with devicemapper [#28047](https://github.com/docker/docker/pull/28047)
* Promote overlay(2) graphdriver [#27932](https://github.com/docker/docker/pull/27932)
+ Add `--seccomp-profile` daemon flag to specify a path to a seccomp profile that overrides the default [#26276](https://github.com/docker/docker/pull/26276)
- Fix ulimits in `docker inspect` when `--default-ulimit` is set on daemon [#26405](https://github.com/docker/docker/pull/26405)
- Add workaround for overlay issues during build in older kernels [#28138](https://github.com/docker/docker/pull/28138)
+ Add `TERM` environment variable on `docker exec -t` [#26461](https://github.com/docker/docker/pull/26461)
* Honor a container’s `--stop-signal` setting upon `docker kill` [#26464](https://github.com/docker/docker/pull/26464)

### Swarm Mode

+ Add secret management [#27794](https://github.com/docker/docker/pull/27794)
+ Add support for templating service options (hostname, mounts, and environment variables) [#28025](https://github.com/docker/docker/pull/28025)
* Display the endpoint mode in the output of `docker service inspect --pretty` [#26906](https://github.com/docker/docker/pull/26906)
* Make `docker service ps` output more bearable by shortening service IDs in task names [#28088](https://github.com/docker/docker/pull/28088)
* Make `docker node ps` default to the current node [#25214](https://github.com/docker/docker/pull/25214)
+ Add `--dns`, -`-dns-opt`, and `--dns-search` to service create. [#27567](https://github.com/docker/docker/pull/27567)
+ Add `--force` to `docker service update` [#27596](https://github.com/docker/docker/pull/27596)
+ Add `--health-*` and `--no-healthcheck` flags to `docker service create` and `docker service update` [#27369](https://github.com/docker/docker/pull/27369)
+ Add `-q` to `docker service ps` [#27654](https://github.com/docker/docker/pull/27654)
* Display number of global services in `docker service ls` [#27710](https://github.com/docker/docker/pull/27710)
- Remove `--name` flag from `docker service update`. This flag is only functional on `docker service create`, so was removed from the `update` command [#26988](https://github.com/docker/docker/pull/26988)
- Fix worker nodes failing to recover because of transient networking issues [#26646](https://github.com/docker/docker/issues/26646)
* Add support for health aware load balancing and DNS records [#27279](https://github.com/docker/docker/pull/27279)
+ Add `--hostname` to `docker service create` [#27857](https://github.com/docker/docker/pull/27857)
+ Add `--host` to `docker service create`, and `--host-add`, `--host-rm` to `docker service update` [#28031](https://github.com/docker/docker/pull/28031)
+ Add `--tty` flag to `docker service create`/`update` [#28076](https://github.com/docker/docker/pull/28076)
* Autodetect, store, and expose node IP address as seen by the manager [#27910](https://github.com/docker/docker/pull/27910)
* Encryption at rest of manager keys and raft data [#27967](https://github.com/docker/docker/pull/27967)
+ Add `--update-max-failure-ratio`, `--update-monitor` and `--rollback` flags to `docker service update` [#26421](https://github.com/docker/docker/pull/26421)
- Fix an issue with address autodiscovery on `docker swarm init` running inside a container [#26457](https://github.com/docker/docker/pull/26457)
+ (experimental) Add `docker service logs` command to view logs for a service [#28089](https://github.com/docker/docker/pull/28089)
+ Pin images by digest for `docker service create` and `update` [#28173](https://github.com/docker/docker/pull/28173)
* Add short (`-f`) flag for `docker node rm --force` and `docker swarm leave --force` [#28196](https://github.com/docker/docker/pull/28196)
+ Add options to customize Raft snapshots (`--max-snapshots`, `--snapshot-interval`) [#27997](https://github.com/docker/docker/pull/27997)
- Don't repull image if pinned by digest [#28265](https://github.com/docker/docker/pull/28265)
+ Swarm-mode support for Windows [#27838](https://github.com/docker/docker/pull/27838)
+ Allow hostname to be updated on service [#28771](https://github.com/docker/docker/pull/28771)
+ Support v2 plugins [#29433](https://github.com/docker/docker/pull/29433)
+ Add content trust for services [#29469](https://github.com/docker/docker/pull/29469)

### Volume

+ Add support for labels on volumes [#21270](https://github.com/docker/docker/pull/21270)
+ Add support for filtering volumes by label [#25628](https://github.com/docker/docker/pull/25628)
* Add a `--force` flag in `docker volume rm` to forcefully purge the data of the volume that has already been deleted [#23436](https://github.com/docker/docker/pull/23436)
* Enhance `docker volume inspect` to show all options used when creating the volume [#26671](https://github.com/docker/docker/pull/26671)
* Add support for local NFS volumes to resolve hostnames [#27329](https://github.com/docker/docker/pull/27329)

### Security

- Fix selinux labeling of volumes shared in a container [#23024](https://github.com/docker/docker/pull/23024)
- Prohibit `/sys/firmware/**` from being accessed with apparmor [#26618](https://github.com/docker/docker/pull/26618)

### Deprecation

- Marked the `docker daemon` command as deprecated. The daemon is moved to a separate binary (`dockerd`), and should be used instead [#26834](https://github.com/docker/docker/pull/26834)
- Deprecate unversioned API endpoints [#28208](https://github.com/docker/docker/pull/28208)
- Remove Ubuntu 15.10 (Wily Werewolf) as supported platform. Ubuntu 15.10 is EOL, and no longer receives updates [#27042](https://github.com/docker/docker/pull/27042)
- Remove Fedora 22 as supported platform. Fedora 22 is EOL, and no longer receives updates [#27432](https://github.com/docker/docker/pull/27432)
- Remove Fedora 23 as supported platform. Fedora 23 is EOL, and no longer receives updates [#29455](https://github.com/docker/docker/pull/29455)
- Deprecate the `repo:shortid` syntax on `docker pull` [#27207](https://github.com/docker/docker/pull/27207)
- Deprecate backing filesystem without `d_type` for overlay and overlay2 storage drivers [#27433](https://github.com/docker/docker/pull/27433)
- Deprecate `MAINTAINER` in Dockerfile [#25466](https://github.com/docker/docker/pull/25466)
- Deprecate `filter` param for endpoint `/images/json` [#27872](https://github.com/docker/docker/pull/27872)
- Deprecate setting duplicate engine labels [#24533](https://github.com/docker/docker/pull/24533)
- Deprecate "top-level" network information in `NetworkSettings` [#28437](https://github.com/docker/docker/pull/28437)

## 1.12.6 (2017-01-10)

> [!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 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](https://raw.githubusercontent.com/docker/docker/v1.12.0/contrib/init/systemd/docker.service.rpm)
- 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.

> [!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:

```text
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:

```text
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.

### Runtime

- Fix runC privilege escalation (CVE-2016-9962)

## 1.12.5 (2016-12-15)

> [!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 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](https://raw.githubusercontent.com/docker/docker/v1.12.0/contrib/init/systemd/docker.service.rpm)
- 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.

> [!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:

```text
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:

```text
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](https://github.com/docker/docker/pull/29424)

### Networking

- Fix panic in docker network ls when a network was created with `--ipv6` and no ipv6 `--subnet` in older docker versions [#29416](https://github.com/docker/docker/pull/29416)

### Contrib

- Fix compilation on Darwin [#29370](https://github.com/docker/docker/pull/29370)

## 1.12.4 (2016-12-12)

> [!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 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](https://raw.githubusercontent.com/docker/docker/v1.12.0/contrib/init/systemd/docker.service.rpm)
- 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.


### Runtime

- Fix issue where volume metadata was not removed [#29083](https://github.com/docker/docker/pull/29083)
- Asynchronously close streams to prevent holding container lock [#29050](https://github.com/docker/docker/pull/29050)
- Fix selinux labels for newly created container volumes [#29050](https://github.com/docker/docker/pull/29050)
- Remove hostname validation [#28990](https://github.com/docker/docker/pull/28990)
- Fix deadlocks caused by IO races [#29095](https://github.com/docker/docker/pull/29095) [#29141](https://github.com/docker/docker/pull/29141)
- Return an empty stats if the container is restarting [#29150](https://github.com/docker/docker/pull/29150)
- Fix volume store locking [#29151](https://github.com/docker/docker/pull/29151)
- Ensure consistent status code in API [#29150](https://github.com/docker/docker/pull/29150)
- Fix incorrect opaque directory permission in overlay2 [#29093](https://github.com/docker/docker/pull/29093)
- Detect plugin content and error out on `docker pull` [#29297](https://github.com/docker/docker/pull/29297)

### Swarm Mode

* Update Swarmkit [#29047](https://github.com/docker/docker/pull/29047)
  - orchestrator/global: Fix deadlock on updates [docker/swarmkit#1760](https://github.com/docker/swarmkit/pull/1760)
  - on leader switchover preserve the vxlan id for existing networks [docker/swarmkit#1773](https://github.com/docker/swarmkit/pull/1773)
- Refuse swarm spec not named "default" [#29152](https://github.com/docker/docker/pull/29152)

### Networking

* Update libnetwork [#29004](https://github.com/docker/docker/pull/29004) [#29146](https://github.com/docker/docker/pull/29146)
  - Fix panic in embedded DNS [docker/libnetwork#1561](https://github.com/docker/libnetwork/pull/1561)
  - Fix unmarhalling panic when passing --link-local-ip on global scope network [docker/libnetwork#1564](https://github.com/docker/libnetwork/pull/1564)
  - Fix panic when network plugin returns nil StaticRoutes [docker/libnetwork#1563](https://github.com/docker/libnetwork/pull/1563)
  - Fix panic in `osl.(*networkNamespace).DeleteNeighbor` [docker/libnetwork#1555](https://github.com/docker/libnetwork/pull/1555)
  - Fix panic in swarm networking concurrent map read/write [docker/libnetwork#1570](https://github.com/docker/libnetwork/pull/1570)
  * Allow encrypted networks when running docker inside a container [docker/libnetwork#1502](https://github.com/docker/libnetwork/pull/1502)
  - Do not block autoallocation of IPv6 pool [docker/libnetwork#1538](https://github.com/docker/libnetwork/pull/1538)
  - Set timeout for netlink calls [docker/libnetwork#1557](https://github.com/docker/libnetwork/pull/1557)
  - Increase networking local store timeout to one minute [docker/libkv#140](https://github.com/docker/libkv/pull/140)
  - Fix a panic in `libnetwork.(*sandbox).execFunc` [docker/libnetwork#1556](https://github.com/docker/libnetwork/pull/1556)
  - Honor icc=false for internal networks [docker/libnetwork#1525](https://github.com/docker/libnetwork/pull/1525)

### Logging

* Update syslog log driver [#29150](https://github.com/docker/docker/pull/29150)

### Contrib

- Run "dnf upgrade" before installing in fedora [#29150](https://github.com/docker/docker/pull/29150)
- Add build-date back to RPM packages [#29150](https://github.com/docker/docker/pull/29150)
- deb package filename changed to include distribution to distinguish between distribution code names [#27829](https://github.com/docker/docker/pull/27829)

## 1.12.3 (2016-10-26)

> [!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 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](https://raw.githubusercontent.com/docker/docker/v1.12.0/contrib/init/systemd/docker.service.rpm)
- 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.


### Runtime

- Fix ambient capability usage in containers (CVE-2016-8867) [#27610](https://github.com/docker/docker/pull/27610)
- Prevent a deadlock in libcontainerd for Windows [#27136](https://github.com/docker/docker/pull/27136)
- Fix error reporting in CopyFileWithTar [#27075](https://github.com/docker/docker/pull/27075)
* Reset health status to starting when a container is restarted [#27387](https://github.com/docker/docker/pull/27387)
* Properly handle shared mount propagation in storage directory [#27609](https://github.com/docker/docker/pull/27609)
- Fix docker exec [#27610](https://github.com/docker/docker/pull/27610)
- Fix backward compatibility with containerd’s events log [#27693](https://github.com/docker/docker/pull/27693)

### Swarm Mode

- Fix conversion of restart-policy [#27062](https://github.com/docker/docker/pull/27062)
* Update Swarmkit [#27554](https://github.com/docker/docker/pull/27554)
 * Avoid restarting a task that has already been restarted [docker/swarmkit#1305](https://github.com/docker/swarmkit/pull/1305)
 * Allow duplicate published ports when they use different protocols [docker/swarmkit#1632](https://github.com/docker/swarmkit/pull/1632)
 * Allow multiple randomly assigned published ports on service [docker/swarmkit#1657](https://github.com/docker/swarmkit/pull/1657)
 - Fix panic when allocations happen at init time [docker/swarmkit#1651](https://github.com/docker/swarmkit/pull/1651)

### Networking

* Update libnetwork [#27559](https://github.com/docker/docker/pull/27559)
 - Fix race in serializing sandbox to string [docker/libnetwork#1495](https://github.com/docker/libnetwork/pull/1495)
 - Fix race during deletion [docker/libnetwork#1503](https://github.com/docker/libnetwork/pull/1503)
 * Reset endpoint port info on connectivity revoke in bridge driver [docker/libnetwork#1504](https://github.com/docker/libnetwork/pull/1504)
 - Fix a deadlock in networking code [docker/libnetwork#1507](https://github.com/docker/libnetwork/pull/1507)
 - Fix a race in load balancer state [docker/libnetwork#1512](https://github.com/docker/libnetwork/pull/1512)

### Logging

* Update fluent-logger-golang to v1.2.1 [#27474](https://github.com/docker/docker/pull/27474)

### Contrib

* Update buildtags for armhf ubuntu-trusty [#27327](https://github.com/docker/docker/pull/27327)
* Add AppArmor to runc buildtags for armhf [#27421](https://github.com/docker/docker/pull/27421)

## 1.12.2 (2016-10-11)

> [!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 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](https://raw.githubusercontent.com/docker/docker/v1.12.0/contrib/init/systemd/docker.service.rpm)
- 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.


### Runtime

- Fix a panic due to a race condition filtering `docker ps` [#26049](https://github.com/docker/docker/pull/26049)
* Implement retry logic to prevent "Unable to remove filesystem" errors when using the aufs storage driver [#26536](https://github.com/docker/docker/pull/26536)
* Prevent devicemapper from removing device symlinks if `dm.use_deferred_removal` is enabled [#24740](https://github.com/docker/docker/pull/24740)
- Fix an issue where the CLI did not return correct exit codes if a command was run with invalid options [#26777](https://github.com/docker/docker/pull/26777)
- Fix a panic due to a bug in stdout / stderr processing in health checks [#26507](https://github.com/docker/docker/pull/26507)
- Fix exec's children handling [#26874](https://github.com/docker/docker/pull/26874)
- Fix exec form of HEALTHCHECK CMD [#26208](https://github.com/docker/docker/pull/26208)

### Networking

- Fix a daemon start panic on armv5 [#24315](https://github.com/docker/docker/issues/24315)
* Vendor libnetwork [#26879](https://github.com/docker/docker/pull/26879) [#26953](https://github.com/docker/docker/pull/26953)
 * Avoid returning early on agent join failures [docker/libnetwork#1473](https://github.com/docker/libnetwork/pull/1473)
 - Fix service published port cleanup issues [docker/libetwork#1432](https://github.com/docker/libnetwork/pull/1432) [docker/libnetwork#1433](https://github.com/docker/libnetwork/pull/1433)
 * Recover properly from transient gossip failures [docker/libnetwork#1446](https://github.com/docker/libnetwork/pull/1446)
 * Disambiguate node names known to gossip cluster to avoid node name collision [docker/libnetwork#1451](https://github.com/docker/libnetwork/pull/1451)
 * Honor user provided listen address for gossip  [docker/libnetwork#1460](https://github.com/docker/libnetwork/pull/1460)
 * Allow reachability via published port across services on the same host [docker/libnetwork#1398](https://github.com/docker/libnetwork/pull/1398)
 * Change the ingress sandbox name from random id to just `ingress_sbox` [docker/libnetwork#1449](https://github.com/docker/libnetwork/pull/1449)
 - Disable service discovery in ingress network [docker/libnetwork#1489](https://github.com/docker/libnetwork/pull/1489)

### Swarm Mode

* Fix remote detection of a node's address when it joins the cluster [#26211](https://github.com/docker/docker/pull/26211)
* Vendor SwarmKit [#26765](https://github.com/docker/docker/pull/26765)
 * Bounce session after failed status update [docker/swarmkit#1539](https://github.com/docker/swarmkit/pull/1539)
 - Fix possible raft deadlocks [docker/swarmkit#1537](https://github.com/docker/swarmkit/pull/1537)
 - Fix panic and endpoint leak when a service is updated with no endpoints [docker/swarmkit#1481](https://github.com/docker/swarmkit/pull/1481)
 * Produce an error if the same port is published twice on `service create` or `service update` [docker/swarmkit#1495](https://github.com/docker/swarmkit/pull/1495)
 - Fix an issue where changes to a service were not detected, resulting in the service not being updated [docker/swarmkit#1497](https://github.com/docker/swarmkit/pull/1497)
 - Do not allow service creation on ingress network [docker/swarmkit#1600](https://github.com/docker/swarmkit/pull/1600)

### Contrib

* Update the debian sysv-init script to use `dockerd` instead of `docker daemon` [#25869](https://github.com/docker/docker/pull/25869)
* Improve stability when running the docker client on MacOS Sierra [#26875](https://github.com/docker/docker/pull/26875)
- Fix installation on debian stretch [#27184](https://github.com/docker/docker/pull/27184)

### Windows

- Fix an issue where arrow-navigation did not work when running the docker client in ConEmu [#25578](https://github.com/docker/docker/pull/25578)

## 1.12.1 (2016-08-18)

> [!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 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](https://raw.githubusercontent.com/docker/docker/v1.12.0/contrib/init/systemd/docker.service.rpm)
- 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.


### Client

* Add `Joined at` information in `node inspect --pretty` [#25512](https://github.com/docker/docker/pull/25512)
- Fix a crash on `service inspect` [#25454](https://github.com/docker/docker/pull/25454)
- Fix issue preventing `service update --env-add` to work as intended [#25427](https://github.com/docker/docker/pull/25427)
- Fix issue preventing `service update --publish-add` to work as intended [#25428](https://github.com/docker/docker/pull/25428)
- Remove `service 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 [#25646](https://github.com/docker/docker/pull/25646)

### Contrib

+ Official ARM installation for Debian Jessie, Ubuntu Trusty, and Raspbian Jessie [#24815](https://github.com/docker/docker/pull/24815) [#25591](https://github.com/docker/docker/pull/25637)
- Add selinux policy per distribution/version, fixing issue preventing successful installation on Fedora 24, and Oracle Linux [#25334](https://github.com/docker/docker/pull/25334) [#25593](https://github.com/docker/docker/pull/25593)

### Networking

- Fix issue that prevented containers to be accessed by hostname with Docker overlay driver in Swarm Mode [#25603](https://github.com/docker/docker/pull/25603) [#25648](https://github.com/docker/docker/pull/25648)
- Fix random network issues on service with published port [#25603](https://github.com/docker/docker/pull/25603)
- Fix unreliable inter-service communication after scaling down and up [#25603](https://github.com/docker/docker/pull/25603)
- Fix issue where removing all tasks on a node and adding them back breaks connectivity with other services [#25603](https://github.com/docker/docker/pull/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](https://github.com/docker/docker/pull/25550)
- Relax validation of SRV records for external services that use SRV records not formatted according to RFC 2782 [#25739](https://github.com/docker/docker/pull/25739)

### Plugins (experimental)

* Make daemon events listen for plugin lifecycle events [#24760](https://github.com/docker/docker/pull/24760)
* Check for plugin state before enabling plugin [#25033](https://github.com/docker/docker/pull/25033)
- Remove plugin root from filesystem on `plugin rm` [#25187](https://github.com/docker/docker/pull/25187)
- Prevent deadlock when more than one plugin is installed [#25384](https://github.com/docker/docker/pull/25384)

### Runtime

* Mask join tokens in daemon logs [#25346](https://github.com/docker/docker/pull/25346)
- Fix `docker ps --filter` causing the results to no longer be sorted by creation time [#25387](https://github.com/docker/docker/pull/25387)
- Fix various crashes [#25053](https://github.com/docker/docker/pull/25053)

### Security

* Add `/proc/timer_list` to the masked paths list to prevent information leak from the host [#25630](https://github.com/docker/docker/pull/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](https://github.com/docker/docker/pull/25567)

### Swarm

- Fix an issue where the swarm can get stuck electing a new leader after quorum is lost [#25055](https://github.com/docker/docker/issues/25055)
- Fix unwanted rescheduling of containers after a leader failover [#25017](https://github.com/docker/docker/issues/25017)
- Change swarm root CA key to P256 curve [swarmkit#1376](https://github.com/docker/swarmkit/pull/1376)
- Allow forced removal of a node from a swarm [#25159](https://github.com/docker/docker/pull/25159)
- Fix connection leak when a node leaves a swarm [swarmkit/#1277](https://github.com/docker/swarmkit/pull/1277)
- Backdate swarm certificates by one hour to tolerate more clock skew [swarmkit/#1243](https://github.com/docker/swarmkit/pull/1243)
- Avoid high CPU use with many unschedulable tasks [swarmkit/#1287](https://github.com/docker/swarmkit/pull/1287)
- Fix issue with global tasks not starting up [swarmkit/#1295](https://github.com/docker/swarmkit/pull/1295)
- Garbage collect raft logs [swarmkit/#1327](https://github.com/docker/swarmkit/pull/1327)

### Volume

- Persist local volume options after a daemon restart [#25316](https://github.com/docker/docker/pull/25316)
- Fix an issue where the mount ID was not returned on volume unmount [#25333](https://github.com/docker/docker/pull/25333)
- Fix an issue where a volume mount could inadvertently create a bind mount [#25309](https://github.com/docker/docker/pull/25309)
- `docker service create --mount type=bind,...` now correctly validates if the source path exists, instead of creating it [#25494](https://github.com/docker/docker/pull/25494)

## 1.12.0 (2016-07-28)


> [!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](https://raw.githubusercontent.com/docker/docker/v1.12.0/contrib/init/systemd/docker.service.rpm)
- Remove the `Requires=docker.socket` directive from the `/usr/lib/systemd/system/docker.service` file if present
> [!IMPORTANT]
>
> Docker 1.12.0 viene con un archivo de unidad systemd actualizado para instalaciones basadas en rpm (que incluye RHEL, Fedora, CentOS y Oracle Linux 7). Al actualizar desde una versión anterior de Docker, es posible que el proceso de actualización no instale automáticamente la versión actualizada del archivo de unidad, o que no inicie el `docker service` si:
> - el archivo de unidad systemd (`/usr/lib/systemd/system/docker.service`) contiene cambios locales, o
> - está presente un archivo drop-in de systemd, y contiene `-H fd://` en la directiva `ExecStart`

Al iniciar el `docker service` se producirá un error:

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

o

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

Para resolver esto:

- Realiza una copia de seguridad de la versión actual del archivo de unidad y reemplaza el archivo con la [versión que se incluye con docker 1.12](https://raw.githubusercontent.com/docker/docker/v1.12.0/contrib/init/systemd/docker.service.rpm)
- Elimina la directiva `Requires=docker.socket` del archivo `/usr/lib/systemd/system/docker.service` si está presente
- Elimina `-H fd://` de la directiva `ExecStart` (tanto en el archivo de unidad principal como en cualquier archivo drop-in presente).

Después de realizar esos cambios, ejecuta `sudo systemctl daemon-reload` y `sudo systemctl restart docker` para recargar los cambios e iniciar (o reiniciar) el demonio de docker.

> [!IMPORTANT]
>
> Con Docker 1.12, una instalación de `docker` en Linux ahora tiene dos binarios adicionales; `dockerd` y `docker-proxy`. Si tienes scripts para instalar `docker`, asegúrate de actualizarlos en consecuencia.

### Constructor (Builder)

+ Nueva instrucción `HEALTHCHECK` en Dockerfile para admitir verificaciones de salud definidas por el usuario [#23218](https://github.com/docker/docker/pull/23218)
+ Nueva instrucción `SHELL` en Dockerfile para especificar el shell predeterminado al usar la forma de shell para comandos en un Dockerfile [#22489](https://github.com/docker/docker/pull/22489)
+ Añadir la directiva `#escape=` de Dockerfile para admitir el análisis específico de la plataforma de rutas de archivos en Dockerfile [#22268](https://github.com/docker/docker/pull/22268)
+ Añadir soporte para comentarios en `.dockerignore` [#23111](https://github.com/docker/docker/pull/23111)
* Soporte para UTF-8 en Dockerfiles [#23372](https://github.com/docker/docker/pull/23372)
* Omitir los bytes BOM UTF-8 de `Dockerfile` y `.dockerignore` si existen [#23234](https://github.com/docker/docker/pull/23234)
* Windows: soporte para `ARG` para coincidir con Linux [#22508](https://github.com/docker/docker/pull/22508)
- Corregir mensaje de error al construir usando un demonio con la red bridge deshabilitada [#22932](https://github.com/docker/docker/pull/22932)

### Contrib

* Habilitar seccomp para Centos 7 y Oracle Linux 7 [#22344](https://github.com/docker/docker/pull/22344)
- Eliminar MountFlags en la unidad de systemd para permitir la propagación de montajes compartidos [#22806](https://github.com/docker/docker/pull/22806)

### Distribución

+ Añadir las banderas del demonio `--max-concurrent-downloads` y `--max-concurrent-uploads` útiles para situaciones en las que las conexiones de red no admiten múltiples descargas/cargas [#22445](https://github.com/docker/docker/pull/22445)
* Las operaciones de registro ahora respetan la variable de entorno `ALL_PROXY` [#22316](https://github.com/docker/docker/pull/22316)
* Proporcionar más información al usuario en `docker load` [#23377](https://github.com/docker/docker/pull/23377)
* Guardar siempre los metadatos del digest del registro sobre las imágenes enviadas (pushed) y descargadas (pulled) [#23996](https://github.com/docker/docker/pull/23996)

### Registros (Logging)

+ El controlador de registro Syslog ahora admite sockets DGRAM [#21613](https://github.com/docker/docker/pull/21613)
+ Añadir la opción `--details` a `docker logs` para mostrar también etiquetas de registro [#21889](https://github.com/docker/docker/pull/21889)
+ Permitir que el registrador syslog tenga acceso a env y etiquetas [#21724](https://github.com/docker/docker/pull/21724)
+ Una opción adicional de formato syslog `rfc5424micro` para permitir resolución de microsegundos en la marca de tiempo de syslog [#21844](https://github.com/docker/docker/pull/21844)
* Heredar las opciones de log del demonio al crear contenedores [#21153](https://github.com/docker/docker/pull/21153)
* Eliminar el prefijo `docker/` de las etiquetas de mensajes de log y reemplazarlo con `{{.DaemonName}}` para que los usuarios tengan la opción de cambiar el prefijo [#22384](https://github.com/docker/docker/pull/22384)

### Redes

+ Balanceo de carga interno y de ingreso basado en IP virtual (VIP) integrado usando IPVS [#23361](https://github.com/docker/docker/pull/23361)
+ Malla de enrutamiento (Routing Mesh) usando red superpuesta de ingreso [#23361](https://github.com/docker/docker/pull/23361)
+ Redes superpuestas multihost aseguradas usando plano de control y plano de datos cifrados [#23361](https://github.com/docker/docker/pull/23361)
+ El controlador MacVlan sale de experimental [#23524](https://github.com/docker/docker/pull/23524)
+ Añadir el filtro `driver` a `network ls` [#22319](https://github.com/docker/docker/pull/22319)
+ Añadir el filtro `network` a `docker ps --filter` [#23300](https://github.com/docker/docker/pull/23300)
+ Añadir la bandera `--link-local-ip` a `create`, `run` y `network connect` para especificar la dirección link-local de un contenedor [#23415](https://github.com/docker/docker/pull/23415)
+ Añadir soporte para filtro de etiquetas de red [#21495](https://github.com/docker/docker/pull/21495)
* Eliminar la dependencia de un almacén KV externo para redes superpuestas en Swarm Mode [#23361](https://github.com/docker/docker/pull/23361)
* Añadir el short-id del contenedor como alias de red predenterminado [#21901](https://github.com/docker/docker/pull/21901)
* Las opciones de `run` `--dns` y `--net=host` ya no son mutuamente excluyentes [#22408](https://github.com/docker/docker/pull/22408)
- Corregir problema de DNS al renombrar contenedores con nombres generados [#22716](https://github.com/docker/docker/pull/22716)
- Permitir tanto `network inspect -f {{.Id}}` como `network inspect -f {{.ID}}` para solucionar la inconsistencia en la salida de inspect [#23226](https://github.com/docker/docker/pull/23226)

### Plugins (experimental)

+ Nuevo comando `plugin` para gestionar plugins con los subcomandos `install`, `enable`, `disable`, `rm`, `inspect`, `set` [#23446](https://github.com/docker/docker/pull/23446)

### API remota (v1.24) y Cliente

+ Dividir el binario en dos: `docker` (cliente) y `dockerd` (demonio) [#20639](https://github.com/docker/docker/pull/20639)
+ Añadir filtros `before` y `since` a `docker images --filter` [#22908](https://github.com/docker/docker/pull/22908)
+ Añadir la opción `--limit` a `docker search` [#23107](https://github.com/docker/docker/pull/23107)
+ Añadir la opción `--filter` a `docker search` [#22369](https://github.com/docker/docker/pull/22369)
+ Añadir opciones de seguridad a la salida de `docker info` [#21172](https://github.com/docker/docker/pull/21172) [#23520](https://github.com/docker/docker/pull/23520)
+ Añadir registros no seguros a la salida de `docker info` [#20410](https://github.com/docker/docker/pull/20410)
+ Extender la autorización de Docker con información de usuario TLS [#21556](https://github.com/docker/docker/pull/21556)
+ devicemapper: exponer el espacio libre mínimo del thin pool a través de `docker info` [#21945](https://github.com/docker/docker/pull/21945)
* La API ahora devuelve un objeto JSON cuando ocurre un error para que sea más consistente [#22880](https://github.com/docker/docker/pull/22880)
- Evitar que `docker run -i --restart` se cuelgue al salir [#22777](https://github.com/docker/docker/pull/22777)
- Corregir discrepancia entre API/CLI en la validación del nombre de host [#21641](https://github.com/docker/docker/pull/21641)
- Corregir discrepancia en el formato de los tamaños en `stats` de HumanSize a BytesSize [#21773](https://github.com/docker/docker/pull/21773)
- authz: cuando se deniega la solicitud, devolver código de salida de prohibido (403) [#22448](https://github.com/docker/docker/pull/22448)
- Windows: corregir problemas de visualización relacionados con tty [#23878](https://github.com/docker/docker/pull/23878)

### Tiempo de ejecución

+ Dividir el proxy de espacio de usuario en un binario separado (`docker-proxy`) [#23312](https://github.com/docker/docker/pull/23312)
+ Añadir la bandera del demonio `--live-restore` para mantener los contenedores en ejecución cuando el demonio se apaga, y recuperar el control al arrancar [#23213](https://github.com/docker/docker/pull/23213)
+ Capacidad para añadir tiempos de ejecución compatibles con OCI (a través de la bandera del demonio `--add-runtime`) y seleccionar uno con `--runtime` en `create` y `run` [#22983](https://github.com/docker/docker/pull/22983)
+ Nuevo controlador gráfico `overlay2` para Linux 4.0+ con soporte para múltiples directorios inferiores [#22126](https://github.com/docker/docker/pull/22126)
+ Nuevos eventos de carga/guardado de imágenes [#22137](https://github.com/docker/docker/pull/22137)
+ Añadir soporte para recargar la configuración del demonio a través de systemd [#22446](https://github.com/docker/docker/pull/22446)
+ Añadir soporte de cuota de disco para btrfs [#19651](https://github.com/docker/docker/pull/19651)
+ Añadir soporte de cuota de disco para zfs [#21946](https://github.com/docker/docker/pull/21946)
+ Añadir soporte para `docker run --pid=container:<id>` [#22481](https://github.com/docker/docker/pull/22481)
+ Alinear el perfil seccomp predeterminado con las capacidades seleccionadas [#22554](https://github.com/docker/docker/pull/22554)
+ Añadir un evento `daemon reload` cuando el demonio recarga su configuración [#22590](https://github.com/docker/docker/pull/22590)
+ Añadir capacidad de `trace` en el analizador pprof para mostrar trazas de ejecución en formato binario [#22715](https://github.com/docker/docker/pull/22715)
+ Añadir un evento `detach` [#22898](https://github.com/docker/docker/pull/22898)
+ Añadir soporte para configurar sysctls con `--sysctl` [#19265](https://github.com/docker/docker/pull/19265)
+ Añadir la bandera `--storage-opt` a `create` y `run` permitiendo establecer `size` en devicemapper [#19367](https://github.com/docker/docker/pull/19367)
+ Añadir la bandera del demonio `--oom-score-adjust` con un valor predeterminado de `-500` haciendo que el demonio tenga menos probabilidades de ser finalizado antes que los contenedores [#24516](https://github.com/docker/docker/pull/24516)
* No desaprobar el alias corto `-c` de `--cpu-shares` en `run`, `build`, `create`, `update` [#22621](https://github.com/docker/docker/pull/22621)
* Evitar el uso de los controladores gráficos aufs y overlay en un montaje eCryptfs [#23121](https://github.com/docker/docker/pull/23121)
- Corregir problemas con el orden de montaje de tmpfs [#22329](https://github.com/docker/docker/pull/22329)
- Los contenedores creados ya no se listan en `docker ps -a -f exited=0` [#21947](https://github.com/docker/docker/pull/21947)
- Corregir un problema donde los contenedores se quedan atascados en un estado de "Removal In Progress" [#22423](https://github.com/docker/docker/pull/22423)
- Corregir error que devolvía un HTTP 500 en lugar de un 400 cuando no se especificaba un comando en run/create [#22762](https://github.com/docker/docker/pull/22762)
- Corregir error con `--detach-keys` donde la entrada que coincidía con un prefijo de la tecla de desanclaje no se conservaba [#22943](https://github.com/docker/docker/pull/22943)
- El etiquetado SELinux ahora está deshabilitado al usar el modo `--privileged` [#22993](https://github.com/docker/docker/pull/22993)
- Si se montan volúmenes en un contenedor, `/etc/hosts`, `/etc/resolv.conf`, `/etc/hostname` ya no reciben etiquetas SELinux [#22993](https://github.com/docker/docker/pull/22993)
- Corregir inconsistencia en el comportamiento de `--tmpfs` con respecto a las opciones de montaje [#22438](https://github.com/docker/docker/pull/22438)
- Corregir un problema donde el demonio se cuelga al iniciar [#23148](https://github.com/docker/docker/pull/23148)
- Ignorar eventos SIGPIPE para evitar que los reinicios de journald bloqueen Docker en algunos casos [#22460](https://github.com/docker/docker/pull/22460)
- Los contenedores no se eliminan de la lista de estadísticas en caso de error [#20835](https://github.com/docker/docker/pull/20835)
- Corregir la política de reinicio `on-failure` cuando el demonio se reinicia [#20853](https://github.com/docker/docker/pull/20853)
- Corregir un problema con `stats` cuando un contenedor está usando la red de otro contenedor [#21904](https://github.com/docker/docker/pull/21904)

### Swarm Mode

+ Nuevo comando `swarm` para gestionar swarms con los subcomandos `init`, `join`, `join-token`, `leave`, `update` [#23361](https://github.com/docker/docker/pull/23361) [#24823](https://github.com/docker/docker/pull/24823)
+ Nuevo comando `service` para gestionar servicios en todo el swarm con los subcomandos `create`, `inspect`, `update`, `rm`, `ps` [#23361](https://github.com/docker/docker/pull/23361) [#25140](https://github.com/docker/docker/pull/25140)
+ Nuevo comando `node` para gestionar nodos con los subcomandos `accept`, `promote`, `demote`, `inspect`, `update`, `ps`, `ls` y `rm` [#23361](https://github.com/docker/docker/pull/23361) [#25140](https://github.com/docker/docker/pull/25140)
+ (experimental) Nuevos comandos `stack` y `deploy` para gestionar y desplegar aplicaciones multiservicio [#23522](https://github.com/docker/docker/pull/23522) [#25140](https://github.com/docker/docker/pull/25140)

### Volúmenes

+ Añadir soporte para ámbitos de volumen locales y globales (análogos a los ámbitos de red) [#22077](https://github.com/docker/docker/pull/22077)
+ Permitir que los controladores de volumen proporcionen un campo `Status` [#21006](https://github.com/docker/docker/pull/21006)
+ Añadir soporte de filtro por nombre/controlador para volumen [#21361](https://github.com/docker/docker/pull/21361)
* Las operaciones de montaje/desmontaje ahora reciben un ID opaco para permitir a los controladores de volumen diferenciar entre dos llamadores [#21015](https://github.com/docker/docker/pull/21015)
- Corregir problema que impedía eliminar un volumen en un caso extremo [#22103](https://github.com/docker/docker/pull/22103)
- Windows: habilitar la creación automática de la ruta del host para coincidir con Linux [#22094](https://github.com/docker/docker/pull/22094)

### Depreciaciones

* Las variables de entorno `DOCKER_CONTENT_TRUST_OFFLINE_PASSPHRASE` y `DOCKER_CONTENT_TRUST_TAGGING_PASSPHRASE` han sido renombradas
  a `DOCKER_CONTENT_TRUST_ROOT_PASSPHRASE` y `DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE` respectivamente [#22574](https://github.com/docker/docker/pull/22574)
* Eliminar las opciones de registro depreciadas `syslog-tag`, `gelf-tag`, `fluentd-tag` en favor de la más genérica `tag` [#22620](https://github.com/docker/docker/pull/22620)
* Eliminar la característica depreciada de pasar HostConfig al iniciar un contenedor de la API [#22570](https://github.com/docker/docker/pull/22570)
* Eliminar la bandera depreciada `-f`/`--force` en docker tag [#23090](https://github.com/docker/docker/pull/23090)
* Eliminar el punto de conexión depreciado `/containers/<id|name>/copy` [#22149](https://github.com/docker/docker/pull/22149)
* Eliminar las banderas depreciadas de `docker ps` `--since` y `--before` [#22138](https://github.com/docker/docker/pull/22138)
* Depreciar la antigua forma de 3 argumentos de `docker import` [#23273](https://github.com/docker/docker/pull/23273)

## 1.11.2 (2016-05-31)

### Redes

- Corregir un problema de punto de conexión obsoleto en redes superpuestas durante un reinicio abrupto ([#23015](https://github.com/docker/docker/pull/23015))
- Corregir un problema donde `docker inspect/ps/port` podía reportar un puerto incorrecto ([#22997](https://github.com/docker/docker/pull/22997))

### Tiempo de ejecución

- Corregir un pánico potencial al ejecutar `docker build` ([#23032](https://github.com/docker/docker/pull/23032))
- Corregir la interpretación del parámetro `--user` ([#22998](https://github.com/docker/docker/pull/22998))
- Corregir un error que impedía que las estadísticas del contenedor se reportaran correctamente ([#22955](https://github.com/docker/docker/pull/22955))
- Corregir un problema que impedía reiniciar el contenedor después de reiniciar el demonio ([#22947](https://github.com/docker/docker/pull/22947))
- Corregir problemas al ejecutar binarios de 32 bits en Ubuntu 16.04 ([#22922](https://github.com/docker/docker/pull/22922))
- Corregir un posible bloqueo mutuo en la eliminación de imágenes y conexión de contenedores ([#22918](https://github.com/docker/docker/pull/22918))
- Corregir un problema que impedía que los contenedores se iniciaran después de reiniciar el demonio si dependían de un almacén de clúster contenedorizado ([#22561](https://github.com/docker/docker/pull/22561))
- Corregir un problema que causaba que `docker ps` se colgara en CentOS al usar devicemapper ([#22168](https://github.com/docker/docker/pull/22168), [#23067](https://github.com/docker/docker/pull/23067))
- Corregir un error que impedía hacer `docker exec` en un contenedor al usar devicemapper ([#22168](https://github.com/docker/docker/pull/22168), [#23067](https://github.com/docker/docker/pull/23067))


## 1.11.1 (2016-04-26)

### Distribución

- Corregir el tipo de medio del manifiesto schema2 para que sea del tipo `application/vnd.docker.container.image.v1+json` ([#21949](https://github.com/docker/docker/pull/21949))

### Documentación

+ Añadir la documentación de la API que faltaba para los cambios introducidos con 1.11.0 ([#22048](https://github.com/docker/docker/pull/22048))

### Constructor (Builder)

* Adjuntar la etiqueta pasada a `docker build` como argumentos como un comando `LABEL` implícito al final del `Dockerfile` procesado ([#22184](https://github.com/docker/docker/pull/22184))

### Redes

- Corregir un pánico que ocurría al reenviar consultas DNS ([#22261](https://github.com/docker/docker/pull/22261))
- Corregir un problema donde los hilos del sistema operativo podían terminar en un espacio de nombres de red incorrecto al usar redes definidas por el usuario ([#22261](https://github.com/docker/docker/pull/22261))

### Tiempo de ejecución

- Corregir un error que impedía que la configuración de etiquetas se recargara a través del archivo de configuración ([#22299](https://github.com/docker/docker/pull/22299))
- Corregir una regresión donde un contenedor que montaba `/var/run` impedía que otros contenedores fueran eliminados ([#22256](https://github.com/docker/docker/pull/22256))
- Corregir un problema donde era imposible actualizar el valor de `memory-swap` y `memory` juntos ([#22255](https://github.com/docker/docker/pull/22255))
- Corregir una regresión de 1.11.0 donde el punto de conexión `/auth` no inicializaba `serveraddress` si no se proporcionaba ([#22254](https://github.com/docker/docker/pull/22254))
- Añadir la limpieza faltante de archivos temporales del contenedor al cancelar un reinicio programado ([#22237](https://github.com/docker/docker/pull/22237))
- Eliminar el mensaje de error alarmante cuando no se especifica ninguna política de reinicio ([#21993](https://github.com/docker/docker/pull/21993))
- Corregir un pánico que ocurría cuando los plugins se activaban a través de la especificación json ([#22191](https://github.com/docker/docker/pull/22191))
- Corregir la lógica de retroceso de reinicio para restablecer correctamente el retraso si el contenedor se ejecutó durante al menos 10 segundos ([#22125](https://github.com/docker/docker/pull/22125))
- Eliminar el mensaje de error cuando se cancela el reinicio de un contenedor ([#22123](https://github.com/docker/docker/pull/22123))
- Corregir un problema donde `docker` no se limpiaba correctamente después de `docker exec` ([#22121](https://github.com/docker/docker/pull/22121))
- Corregir un pánico que podía ocurrir al servir comandos `docker stats` concurrentes ([#22120](https://github.com/docker/docker/pull/22120))
- Revertir la depreciación de la creación automática de directorios del host inexistentes ([#22065](https://github.com/docker/docker/pull/22065))
- Ocultar mensaje de error rpc engañoso al apagar el demonio ([#22058](https://github.com/docker/docker/pull/22058))

## 1.11.0 (2016-04-13)

> [!IMPORTANT]
>
> Con Docker 1.11, una instalación de Docker en Linux ahora consta de 4 binarios (`docker`, [`docker-containerd`](https://github.com/docker/containerd), [`docker-containerd-shim`](https://github.com/docker/containerd) y [`docker-runc`](https://github.com/opencontainers/runc)). Si tienes scripts que dependen de que `docker` sea un único binario estático, asegúrate de actualizarlos. Por lo demás, la interacción con el demonio sigue siendo la misma, el uso de los otros binarios debería ser transparente. Una instalación de Docker en Windows sigue siendo un único binario, `docker.exe`.

### Constructor (Builder)

- Corregir un error donde Docker no usaba el uid/gid correcto al procesar el comando `WORKDIR` ([#21033](https://github.com/docker/docker/pull/21033))
- Corregir un error donde las operaciones de copia con userns no usaban el uid/gid adecuado ([#20782](https://github.com/docker/docker/pull/20782), [#21162](https://github.com/docker/docker/pull/21162))

### Cliente

* El uso del separador `:` para la opción de seguridad ha sido desaprobado. Se debe usar `=` en su lugar ([#21232](https://github.com/docker/docker/pull/21232))
+ El agente de usuario del cliente ahora se pasa al registro en las operaciones `pull`, `build`, `push`, `login` y `search` ([#21306](https://github.com/docker/docker/pull/21306), [#21373](https://github.com/docker/docker/pull/21373))
* Permitir configurar el Domainname y Hostname por separado a través de la API ([#20200](https://github.com/docker/docker/pull/20200))
* `docker info` ahora advertirá a los usuarios si no puede detectar la versión del kernel o el sistema operativo ([#21128](https://github.com/docker/docker/pull/21128))
- Corregir un problema donde la salida de `docker stats --no-stream` podía ser todo ceros ([#20803](https://github.com/docker/docker/pull/20803))
- Corregir un error donde algunos contenedores recién iniciados no aparecían en un comando `docker stats` en ejecución ([#20792](https://github.com/docker/docker/pull/20792))
* El postprocesamiento ya no está habilitado para terminales linux-cgo ([#20587](https://github.com/docker/docker/pull/20587))
- Los valores para `--hostname` ahora se rechazan si no cumplen con [RFC1123](https://tools.ietf.org/html/rfc1123) ([#20566](https://github.com/docker/docker/pull/20566))
+ Docker aprendió cómo usar un proxy SOCKS ([#20366](https://github.com/docker/docker/pull/20366), [#18373](https://github.com/docker/docker/pull/18373))
+ Docker ahora admite almacenes de credenciales externos ([#20107](https://github.com/docker/docker/pull/20107))
* `docker ps` ahora admite mostrar la lista de volúmenes montados dentro de un contenedor ([#20017](https://github.com/docker/docker/pull/20017))
* `docker info` ahora también reporta la ubicación del directorio raíz de Docker ([#19986](https://github.com/docker/docker/pull/19986))
- Docker ahora prohíbe iniciar sesión con un nombre de usuario vacío (se eliminan los espacios) ([#19806](https://github.com/docker/docker/pull/19806))
* Los atributos de los eventos de Docker ahora se ordenan por clave ([#19761](https://github.com/docker/docker/pull/19761))
* `docker ps` ya no muestra el puerto expuesto para contenedores detenidos ([#19483](https://github.com/docker/docker/pull/19483))
- Docker ahora se limpia a sí mismo si un comando save/export falla ([#17849](https://github.com/docker/docker/pull/17849))
* `docker load` aprendió a mostrar una barra de progreso ([#17329](https://github.com/docker/docker/pull/17329), [#120078](https://github.com/docker/docker/pull/20078))

### Distribución

- Corregir un pánico que ocurría al descargar una imagen con 0 capas ([#21222](https://github.com/docker/docker/pull/21222))
- Corregir un pánico que podía ocurrir por error al enviar a un registro con un servicio de tokens mal configurado ([#21212](https://github.com/docker/docker/pull/21212))
+ Todos los roles de delegación de primer nivel ahora se firman al realizar un push confiable ([#21046](https://github.com/docker/docker/pull/21046))
+ Se añadió soporte OAuth para registros ([#20970](https://github.com/docker/docker/pull/20970))
* `docker login` ahora maneja el token utilizando la implementación que se encuentra en [docker/distribution](https://github.com/docker/distribution) ([#20832](https://github.com/docker/docker/pull/20832))
* `docker login` ya no solicitará un correo electrónico ([#20565](https://github.com/docker/docker/pull/20565))
* Docker ahora recurrirá al registro V1 si no hay credenciales básicas de autenticación disponibles ([#20241](https://github.com/docker/docker/pull/20241))
* Docker ahora intentará reanudar la descarga de capas donde la dejó después de un error/tiempo de espera de red ([#19840](https://github.com/docker/docker/pull/19840))
- Corregir el manifest mediaType generado al hacer push entre repositorios ([#19509](https://github.com/docker/docker/pull/19509))
- Corregir que Docker solicite credenciales de push adicionales al descargar una imagen si Content Trust está habilitado ([#20382](https://github.com/docker/docker/pull/20382))

### Registros (Logging)

- Corregir una carrera en el controlador de logs de journald ([#21311](https://github.com/docker/docker/pull/21311))
* El controlador syslog de Docker ahora usa el formato RFC-5424 al emitir logs ([#20121](https://github.com/docker/docker/pull/20121))
* El controlador de logs GELF de Docker ahora permite especificar el algoritmo y nivel de compresión a través de las opciones `gelf-compression-type` y `gelf-compression-level` ([#19831](https://github.com/docker/docker/pull/19831))
* El demonio de Docker aprendió a emitir logs sin color a través de la opción `--raw-logs` ([#19794](https://github.com/docker/docker/pull/19794))
+ Docker, en la plataforma Windows, ahora incluye un controlador de registro ETW (Event Tracing in Windows) llamado `etwlogs` ([#19689](https://github.com/docker/docker/pull/19689))
* El controlador de logs de journald aprendió a manejar etiquetas ([#19564](https://github.com/docker/docker/pull/19564))
+ El controlador de logs fluentd aprendió las siguientes opciones: `fluentd-address`, `fluentd-buffer-limit`, `fluentd-retry-wait`, `fluentd-max-retries` y `fluentd-async-connect` ([#19439](https://github.com/docker/docker/pull/19439))
+ Docker aprendió a enviar logs a Google Cloud a través del nuevo controlador de registro `gcplogs` ([#18766](https://github.com/docker/docker/pull/18766))


### Varios (Misc)

+ Al guardar imágenes enlazadas juntas con `docker save` una carga subsiguiente con `docker load` restaurará correctamente su relación padre/hijo ([#21385](https://github.com/docker/docker/pull/21385))
+ Se añadió soporte para compilar el cliente de Docker para OpenBSD ([#21325](https://github.com/docker/docker/pull/21325))
+ Ahora se pueden aplicar etiquetas en la creación de redes, volúmenes e imágenes ([#21270](https://github.com/docker/docker/pull/21270))
* `dockremap` ahora se crea como un usuario del sistema ([#21266](https://github.com/docker/docker/pull/21266))
- Corregir algunas fugas en el cuerpo de la respuesta ([#21258](https://github.com/docker/docker/pull/21258))
- Docker, cuando se ejecuta como servicio con systemd, ahora gestionará adecuadamente los cgroups de sus procesos ([#20633](https://github.com/docker/docker/pull/20633))
* `docker info` ahora reporta el valor de cgroup KernelMemory o emite una advertencia si no es compatible ([#20863](https://github.com/docker/docker/pull/20863))
* `docker info` ahora también reporta el controlador cgroup en uso ([#20388](https://github.com/docker/docker/pull/20388))
* Completado automático de Docker ahora está disponible en PowerShell ([#19894](https://github.com/docker/docker/pull/19894))
* `dockerinit` ya no existe ([#19490](https://github.com/docker/docker/pull/19490),[#19851](https://github.com/docker/docker/pull/19851))
+ Se añadió soporte para compilar Docker en arm64 ([#19013](https://github.com/docker/docker/pull/19013))
+ Soporte experimental para compilar docker.exe en una instalación nativa de Docker en Windows ([#18348](https://github.com/docker/docker/pull/18348))

### Redes

- Corregir pánico si un nodo se elimina por la fuerza del clúster ([#21671](https://github.com/docker/docker/pull/21671))
- Corregir "error al crear interfaz vxlan" al iniciar un contenedor en un clúster Swarm ([#21671](https://github.com/docker/docker/pull/21671))
* `docker network inspect` ahora informará sobre todos los puntos de conexión, tengan o no un contenedor activo ([#21160](https://github.com/docker/docker/pull/21160))
+ Se añadió soporte experimental para los controladores de red MacVlan e IPVlan ([#21122](https://github.com/docker/docker/pull/21122))
* La salida de `docker network ls` ahora está ordenada por nombre de red ([#20383](https://github.com/docker/docker/pull/20383))
- Corregir un error donde Docker permitía que una red fuera creada con el nombre reservado `default` ([#19431](https://github.com/docker/docker/pull/19431))
* `docker network inspect` devuelve si una red es interna o no ([#19357](https://github.com/docker/docker/pull/19357))
+ Controlar IPv6 a través de una opción explícita al crear una red (`docker network create --ipv6`). Esto se muestra como un nuevo campo `EnableIPv6` en `docker network inspect` ([#17513](https://github.com/docker/docker/pull/17513))
* Soporte para registros AAAA (también conocido como descubrimiento de servicios IPv6) en el servidor DNS integrado ([#21396](https://github.com/docker/docker/pull/21396))
- Corregir que no se reenvíen consultas DNS IPv6 del dominio docker a servidores externos ([#21396](https://github.com/docker/docker/pull/21396))
* Múltiples registros A/AAAA del servidor DNS integrado para Round robin de DNS ([#21019](https://github.com/docker/docker/pull/21019))
- Corregir inconsistencia en el recuento de puntos de conexión después de un reinicio abrupto del demonio ([#21261](https://github.com/docker/docker/pull/21261))
- Mover la propiedad de los puertos expuestos y las opciones de mapeo de puertos de Endpoint a Sandbox ([#21019](https://github.com/docker/docker/pull/21019))
- Se corrigió un error que impide la recarga de docker cuando el host está configurado con ipv6.disable=1 ([#21019](https://github.com/docker/docker/pull/21019))
- Se añadió un controlador IPAM nil integrado ([#21019](https://github.com/docker/docker/pull/21019))
- Se corrigió un error en la lógica de iptables.Exists() [#21019](https://github.com/docker/docker/pull/21019)
- Se corrigió una fuga de interfaz Veth al usar la red superpuesta ([#21019](https://github.com/docker/docker/pull/21019))
- Se corrigió un error que impide la recarga de docker después de una eliminación de red durante el apagado ([#20214](https://github.com/docker/docker/pull/20214))
- Asegurarse de que las cadenas de iptables se vuelvan a crear al recargar firewalld ([#20419](https://github.com/docker/docker/pull/20419))
- Permitir pasar el almacén de datos global durante la recarga de configuración ([#20419](https://github.com/docker/docker/pull/20419))
- Para contenedores anónimos use el nombre de alias para el mapeo de IP a nombre, es decir: registro DNS PTR ([#21019](https://github.com/docker/docker/pull/21019))
- Corregir un pánico al eliminar una entrada del archivo /etc/hosts ([#21019](https://github.com/docker/docker/pull/21019))
- Obtener las consultas DNS reenviadas desde el espacio de nombres de red del contenedor ([#21019](https://github.com/docker/docker/pull/21019))
- Corregir la retención de la configuración del modo interno de red para redes de puente en la recarga del demonio ([#21780](https://github.com/docker/docker/pull/21780))
- Corregir la retención de las opciones de configuración del controlador IPAM al recargar el demonio ([#21914](https://github.com/docker/docker/pull/21914))

### Plugins

- Corregir una fuga de descriptores de archivo que ocurría cada vez que se enumeraban los plugins ([#20686](https://github.com/docker/docker/pull/20686))
- Corregir un problema donde el plugin Authz corrompía el cuerpo del payload cuando se enfrentaba a una gran cantidad de datos ([#20602](https://github.com/docker/docker/pull/20602))

### Tiempo de ejecución

- Corregir un pánico que podía ocurrir al realizar la limpieza después de que un contenedor se iniciara con parámetros no válidos ([#21716](https://github.com/docker/docker/pull/21716))
- Corregir una carrera con temporizadores de eventos que se detienen antes de tiempo ([#21692](https://github.com/docker/docker/pull/21692))
- Corregir condiciones de carrera en el almacén de capas, que potencialmente corrompen el mapa y bloquean el proceso ([#21677](https://github.com/docker/docker/pull/21677))
- No desaprobar la creación automática de directorios del host para los montajes. Esta característica fue marcada como depreciada en Docker 1.9, pero se decidió que era un cambio incompatible hacia atrás demasiado grande, por lo que se decidió mantener la característica ([#21666](https://github.com/docker/docker/pull/21666))
+ Ahora es posible que los contenedores compartan los espacios de nombres NET e IPC cuando `userns` está habilitado ([#21383](https://github.com/docker/docker/pull/21383))
+ `docker inspect <image-id>` ahora expondrá las capas de rootfs ([#21370](https://github.com/docker/docker/pull/21370))
+ Docker para Windows ganó una implementación mínima de `top` ([#21354](https://github.com/docker/docker/pull/21354))
* Docker aprendió a reportar el archivo ejecutable defectuoso cuando un contenedor no se puede iniciar debido a su condición ([#21345](https://github.com/docker/docker/pull/21345))
* Docker con device mapper ahora se negará a ejecutarse si `udev sync` no está disponible ([#21097](https://github.com/docker/docker/pull/21097))
- Corregir un error donde Docker no validaba el archivo de configuración al recargar la configuración ([#21089](https://github.com/docker/docker/pull/21089))
- Corregir un cuelgue que ocurría al conectarse si el inicio inicial fallaba ([#21048](https://github.com/docker/docker/pull/21048))
- Corregir un problema por el cual las opciones del servicio de registro en el archivo de configuración del demonio no se tenían en cuenta correctamente ([#21045](https://github.com/docker/docker/pull/21045))
- Corregir una carrera entre las operaciones exec y de cambio de tamaño ([#21022](https://github.com/docker/docker/pull/21022))
- Corregir un problema por el cual los nanosegundos no se tenían en cuenta correctamente al filtrar eventos de Docker ([#21013](https://github.com/docker/docker/pull/21013))
- Corregir el manejo del comando Docker cuando se le pasa un id de 64 bytes ([#21002](https://github.com/docker/docker/pull/21002))
* Docker ahora devolverá un `204` (es decir, http.StatusNoContent) cuando elimine con éxito una red ([#20977](https://github.com/docker/docker/pull/20977))
- Corregir un error por el cual el demonio esperaba indefinidamente en caso de que el proceso que estaba a punto de matar ya hubiera salido por su cuenta ([#20967](https://github.com/docker/docker/pull/20967))
* El controlador devmapper aprendió la opción `dm.min_free_space`. Si el espacio libre del dispositivo mapeado alcanza el valor pasado, se prohibirá la creación de nuevos dispositivos. ([#20786](https://github.com/docker/docker/pull/20786))
+ Docker ahora puede evitar que los procesos en el contenedor obtengan nuevos privilegios a través de la bandera `--security-opt=no-new-privileges` ([#20727](https://github.com/docker/docker/pull/20727))
- Iniciar un contenedor con la opción `--device` ahora resolverá correctamente los enlaces simbólicos ([#20684](https://github.com/docker/docker/pull/20684))
+ Docker ahora depende de [`containerd`](https://github.com/docker/containerd) y [`runc`](https://github.com/opencontainers/runc) para generar contenedores ([#20662](https://github.com/docker/docker/pull/20662))
- Corregir la recarga de la configuración de Docker para alterar únicamente los valores presentes en el archivo de configuración dado ([#20604](https://github.com/docker/docker/pull/20604))
+ Docker ahora permite establecer un nombre de host de contenedor a través de la bandera `--hostname` cuando `--net=host` ([#20177](https://github.com/docker/docker/pull/20177))
+ Docker ahora permite ejecutar un contenedor privilegiado mientras se ejecuta con `--userns-remap` si se especifican tanto `--privileged` como la nueva bandera `--userns=host` ([#20111](https://github.com/docker/docker/pull/20111))
- Corregir que Docker no limpie correctamente los contenedores antiguos al reiniciar después de un fallo ([#19679](https://github.com/docker/docker/pull/19679))
* Docker ahora dará un error si no reconoce una clave de configuración dentro del archivo de configuración ([#19517](https://github.com/docker/docker/pull/19517))
- Corregir la carga de contenedores en el inicio del demonio cuando dependen de un plugin que se ejecuta dentro de un contenedor ([#19500](https://github.com/docker/docker/pull/19500))
* `docker update` aprendió cómo cambiar una política de reinicio de contenedor ([#19116](https://github.com/docker/docker/pull/19116))
* `docker inspect` ahora también devuelve un nuevo campo `State` que contiene el estado del contenedor de una manera legible para los humanos (es decir, uno de `created`, `restarting`, `running`, `paused`, `exited` o `dead`)([#18966](https://github.com/docker/docker/pull/18966))
+ Docker aprendió a limitar el número de pids activos (es decir, procesos) dentro del contenedor a través de las banderas `pids-limit`. NOTA: Esto requiere que `CGROUP_PIDS=y` esté en la configuración del kernel. ([#18697](https://github.com/docker/docker/pull/18697))
- `docker load` ahora tiene una opción `--quiet` para suprimir la salida de la carga ([#20078](https://github.com/docker/docker/pull/20078))
- Corregir un error en el descubrimiento de vecinos para pares IPv6 ([#20842](https://github.com/docker/docker/pull/20842))
- Corregir un pánico durante la limpieza si un contenedor se inició con opciones no válidas ([#21802](https://github.com/docker/docker/pull/21802))
- Corregir una situación en la que un contenedor no se puede detener si la terminal está cerrada ([#21840](https://github.com/docker/docker/pull/21840))

### Seguridad

* A los objetos con el tipo selinux `pcp_pmcd_t` se les concedió acceso de gestión a `/var/lib/docker(/.*)?` ([#21370](https://github.com/docker/docker/pull/21370))
* `restart_syscall`, `copy_file_range`, `mlock2` se unieron a la lista de llamadas permitidas en el perfil seccomp predeterminado ([#21117](https://github.com/docker/docker/pull/21117), [#21262](https://github.com/docker/docker/pull/21262))
* `send`, `recv` y `x32` se añadieron a la lista de llamadas al sistema y arquitecturas permitidas en el perfil seccomp predeterminado ([#19432](https://github.com/docker/docker/pull/19432))
* Docker Content Trust ahora solicita al servidor que realice la firma de instantáneas (snapshot signing) ([#21046](https://github.com/docker/docker/pull/21046))
* El soporte para usar YubiKeys para la firma de Content Trust ha salido de experimental ([#21591](https://github.com/docker/docker/pull/21591))

### Volúmenes

* La salida de `docker volume ls` ahora está ordenada por nombre de volumen ([#20389](https://github.com/docker/docker/pull/20389))
* Los volúmenes locales ahora pueden aceptar opciones similares a la herramienta `mount` de unix ([#20262](https://github.com/docker/docker/pull/20262))
- Corregir un problema por el cual el nombre de directorio de una letra no se podía usar como origen para los volúmenes ([#21106](https://github.com/docker/docker/pull/21106))
+ `docker run -v` ahora acepta una nueva bandera `nocopy`. Esto le indica al tiempo de ejecución que no copie el contenido de la ruta del contenedor en el volumen (que es el comportamiento predeterminado) ([#21223](https://github.com/docker/docker/pull/21223))

## 1.10.3 (2016-03-10)

### Tiempo de ejecución

- Corregir que el cliente de Docker salga con un error "Unrecognized input header" error [#20706](https://github.com/docker/docker/pull/20706)
- Corregir la salida de Docker si Exec se inicia con `AttachStdin` y `Detach` al mismo tiempo [#20647](https://github.com/docker/docker/pull/20647)

### Distribución

- Corregir una caída al subir en paralelo múltiples imágenes que comparten las mismas capas al mismo repositorio [#20831](https://github.com/docker/docker/pull/20831)
- Corregir un pánico al subir imágenes a un registro que utiliza un servicio de tokens mal configurado [#21030](https://github.com/docker/docker/pull/21030)

### Sistema de Plugins

- Corregir problema que impedía que los plugins de volumen se iniciaran cuando SELinux está habilitado [#20834](https://github.com/docker/docker/pull/20834)
- Evitar que Docker salga si un plugin de volumen devuelve una respuesta nula para las solicitudes Get [#20682](https://github.com/docker/docker/pull/20682)
- Corregir que el sistema de plugins filtre descriptores de archivo si un plugin tiene un error [#20680](https://github.com/docker/docker/pull/20680)

### Seguridad

- Corregir que la emulación linux32 falle durante docker build [#20672](https://github.com/docker/docker/pull/20672)
  Se debía a que la llamada al sistema `personality` estaba bloqueada por el perfil seccomp predeterminado.
- Corregir que Oracle XE 10g no se inicie en un contenedor [#20981](https://github.com/docker/docker/pull/20981)
  Se debía a que la llamada al sistema `ipc` estaba bloqueada por el perfil seccomp predeterminado.
- Corregir que los espacios de nombres de usuario no funcionen en Linux From Scratch [#20685](https://github.com/docker/docker/pull/20685)
- Corregir problema que impedía que el demonio se iniciara si userns está habilitado y los archivos `subuid` o `subgid` contienen comentarios [#20725](https://github.com/docker/docker/pull/20725)

## 1.10.2 (2016-02-22)

### Tiempo de ejecución

- Evitar que systemd elimine los cgroups de los contenedores cuando se recarga su configuración [#20518](https://github.com/docker/docker/pull/20518)
- Corregir problemas de SELinux ignorando `--read-only` al montar `/dev/mqueue` [#20333](https://github.com/docker/docker/pull/20333)
- Corregir los permisos chown utilizados durante `docker cp` cuando se utiliza userns [#20446](https://github.com/docker/docker/pull/20446)
- Corregir problema de carga de configuración donde todos los booleanos tenían como valor predeterminado `true` [#20471](https://github.com/docker/docker/pull/20471)
- Corregir pánico ocasional con `docker logs -f` [#20522](https://github.com/docker/docker/pull/20522)

### Distribución

- Mantener la referencia de la capa si la eliminación falló para evitar un estado gravemente inconsistente [#20513](https://github.com/docker/docker/pull/20513)
- Gestionar con elegancia un caso extremo al cancelar la migración [#20372](https://github.com/docker/docker/pull/20372)
- Corregir docker import en datos comprimidos [#20367](https://github.com/docker/docker/pull/20367)
- Corregir la corrupción de archivos tar-split durante la migración que posteriormente causa fallos en docker push y docker save [#20458](https://github.com/docker/docker/pull/20458)

### Redes

- Corregir la caída del demonio si se envía basura al DNS integrado [#20510](https://github.com/docker/docker/pull/20510)

### Volúmenes

- Corregir problema con múltiples referencias de volumen con el mismo nombre [#20381](https://github.com/docker/docker/pull/20381)

### Seguridad

- Corregir posibles problemas de corrupción de caché y conflictos de delegación [#20523](https://github.com/docker/docker/pull/20523)

## 1.10.1 (2016-02-11)

> [!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/

### Runtime

+ New `docker update` command that allows updating resource constraints on running containers [#15078](https://github.com/docker/docker/pull/15078)
+ Add `--tmpfs` flag to `docker run` to create a tmpfs mount in a container [#13587](https://github.com/docker/docker/pull/13587)
+ Add `--format` flag to `docker images` command [#17692](https://github.com/docker/docker/pull/17692)
+ Allow to set daemon configuration in a file and hot-reload it with the `SIGHUP` signal [#18587](https://github.com/docker/docker/pull/18587)
+ Updated docker events to include more meta-data and event types [#18888](https://github.com/docker/docker/pull/18888)
  This change is backward compatible in the API, but not on the CLI.
+ Add `--blkio-weight-device` flag to `docker run` [#13959](https://github.com/docker/docker/pull/13959)
+ Add `--device-read-bps` and `--device-write-bps` flags to `docker run` [#14466](https://github.com/docker/docker/pull/14466)
+ Add `--device-read-iops` and `--device-write-iops` flags to `docker run` [#15879](https://github.com/docker/docker/pull/15879)
+ Add `--oom-score-adj` flag to `docker run` [#16277](https://github.com/docker/docker/pull/16277)
+ Add `--detach-keys` flag to `attach`, `run`, `start` and `exec` commands to override the default key sequence that detaches from a container  [#15666](https://github.com/docker/docker/pull/15666)
+ Add `--shm-size` flag to `run`, `create` and `build` to set the size of `/dev/shm` [#16168](https://github.com/docker/docker/pull/16168)
+ Show the number of running, stopped, and paused containers in `docker info` [#19249](https://github.com/docker/docker/pull/19249)
+ Show the `OSType` and `Architecture` in `docker info` [#17478](https://github.com/docker/docker/pull/17478)
+ Add `--cgroup-parent` flag on `daemon` to set cgroup parent for all containers [#19062](https://github.com/docker/docker/pull/19062)
+ Add `-L` flag to docker cp to follow symlinks [#16613](https://github.com/docker/docker/pull/16613)
+ New `status=dead` filter for `docker ps` [#17908](https://github.com/docker/docker/pull/17908)
* Change `docker run` exit codes to distinguish between runtime and application errors [#14012](https://github.com/docker/docker/pull/14012)
* Enhance `docker events --since` and `--until` to support nanoseconds and timezones [#17495](https://github.com/docker/docker/pull/17495)
* Add `--all`/`-a` flag to `stats` to include both running and stopped containers [#16742](https://github.com/docker/docker/pull/16742)
* Change the default cgroup-driver to `cgroupfs` [#17704](https://github.com/docker/docker/pull/17704)
* Emitir un evento "tag" al etiquetar una imagen con `build -t` [#17115](https://github.com/docker/docker/pull/17115)
* Mejor esfuerzo en el orden de inicio de los contenedores vinculados al iniciar el demonio [#18208](https://github.com/docker/docker/pull/18208)
* Añadir la capacidad de añadir múltiples etiquetas en `build` [#15780](https://github.com/docker/docker/pull/15780)
* Permitir solicitudes `OPTIONS` contra cualquier url, solucionando así el problema con CORS [#19569](https://github.com/docker/docker/pull/19569)
- Corregir la bandera `--quiet` en `docker build` para que realmente sea silenciosa [#17428](https://github.com/docker/docker/pull/17428)
- Corregir `docker images --filter dangling=false` para que ahora muestre todas las imágenes que no estén huérfanas [#19326](https://github.com/docker/docker/pull/19326)
- Corregir una condición de carrera que provocaba que el reinicio automático se desactivara al reiniciar [#17629](https://github.com/docker/docker/pull/17629)
- Reconocer los sistemas de archivos GPFS [#19216](https://github.com/docker/docker/pull/19216)
- Corregir un error poco común que impedía iniciar contenedores [#19751](https://github.com/docker/docker/pull/19751)
- Prohibir `exec` durante el reinicio de un contenedor [#19722](https://github.com/docker/docker/pull/19722)
- devicemapper: Aumentar `--storage-opt dm.basesize` ahora incrementará el tamaño del dispositivo base al reiniciar el demonio [#19123](https://github.com/docker/docker/pull/19123)

### Seguridad

+ Añadir la bandera `--userns-remap` al `daemon` para admitir espacios de nombres de usuario (anteriormente en experimental) [#19187](https://github.com/docker/docker/pull/19187)
+ Añadir soporte para perfiles seccomp personalizados en `--security-opt` [#17989](https://github.com/docker/docker/pull/17989)
+ Añadir perfil seccomp predeterminado [#18780](https://github.com/docker/docker/pull/18780)
+ Añadir la bandera `--authorization-plugin` al `daemon` para personalizar las ACL [#15365](https://github.com/docker/docker/pull/15365)
+ Docker Content Trust ahora admite la capacidad de leer y escribir delegaciones de usuarios [#18887](https://github.com/docker/docker/pull/18887)
  Esta es una función opcional y de activación voluntaria que requiere el uso explícito de la utilidad de línea de comandos de Notary para poder habilitarse.
  Habilitar el soporte de delegación en un repositorio específico romperá la capacidad de Docker 1.9 y 1.8 para realizar pull de ese repositorio, si content trust está habilitado.
* Permitir que SELinux se ejecute en un contenedor cuando se utiliza el controlador de almacenamiento BTRFS [#16452](https://github.com/docker/docker/pull/16452)

### Distribución

* Utilizar almacenamiento direccionable por contenido para imágenes y capas [#17924](https://github.com/docker/docker/pull/17924)
  Se realiza una migración la primera vez que se ejecuta docker; puede tomar una cantidad de tiempo significativa dependiendo del número de imágenes y contenedores presentes.
  Las imágenes ya no dependen de la cadena principal, sino que contienen una lista de referencias a capas.
  Los archivos tar de `docker load`/`docker save` ahora también contienen configuraciones de imágenes direccionables por contenido.
  Para más información: https://github.com/docker/docker/wiki/Engine-v1.10.0-content-addressability-migration
* Añadir soporte para el nuevo [formato de manifiesto ("schema2")](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md) [#18785](https://github.com/docker/docker/pull/18785)
* Muchas mejoras para push y pull: rendimiento++, reintentos en descargas fallidas, cancelación al desconectarse el cliente [#18353](https://github.com/docker/docker/pull/18353), [#18418](https://github.com/docker/docker/pull/18418), [#19109](https://github.com/docker/docker/pull/19109), [#18353](https://github.com/docker/docker/pull/18353)
* Limitar los fallbacks al protocolo v1 [#18590](https://github.com/docker/docker/pull/18590)
- Corregir un problema por el cual docker podía quedarse colgado indefinidamente esperando a que un proceso inexistente descargara una imagen [#19743](https://github.com/docker/docker/pull/19743)

### Redes

+ Utilizar el descubrimiento basado en DNS en lugar de `/etc/hosts` [#19198](https://github.com/docker/docker/pull/19198)
+ Soporte para alias con alcance de red usando `--net-alias` en `run` y `--alias` en `network connect` [#19242](https://github.com/docker/docker/pull/19242)
+ Añadir `--ip` e `--ip6` en `run` y `network connect` para admitir direcciones IP personalizadas para un contenedor en una red [#19001](https://github.com/docker/docker/pull/19001)
+ Añadir `--ipam-opt` a `network create` para pasar opciones de IPAM personalizadas [#17316](https://github.com/docker/docker/pull/17316)
+ Añadir la bandera `--internal` a `network create` para restringir el acceso externo hacia y desde la red [#19276](https://github.com/docker/docker/pull/19276)
+ Añadir la opción `kv.path` a `--cluster-store-opt` [#19167](https://github.com/docker/docker/pull/19167)
+ Añadir las opciones `discovery.heartbeat` y `discovery.ttl` a `--cluster-store-opt` para configurar el TTL de descubrimiento y el temporizador de latidos (heartbeat) [#18204](https://github.com/docker/docker/pull/18204)
+ Añadir la bandera `--format` a `network inspect` [#17481](https://github.com/docker/docker/pull/17481)
+ Añadir `--link` a `network connect` para proporcionar un alias local al contenedor [#19229](https://github.com/docker/docker/pull/19229)
+ Soporte para el intercambio de capacidades (Capability exchange) con plugins de IPAM remotos [#18775](https://github.com/docker/docker/pull/18775)
+ Añadir `--force` a `network disconnect` para forzar la desconexión de un contenedor de la red [#19317](https://github.com/docker/docker/pull/19317)
* Soporte para redes multi-host usando el controlador overlay integrado para todos los núcleos compatibles con el motor: 3.10+ [#18775](https://github.com/docker/docker/pull/18775)
* `--link` ahora es compatible en `docker run` para contenedores en una red definida por el usuario [#19229](https://github.com/docker/docker/pull/19229)
* Mejorar `docker network rm` para permitir la eliminación de múltiples redes [#17489](https://github.com/docker/docker/pull/17489)
* Incluir nombres de contenedores en `network inspect` [#17615](https://github.com/docker/docker/pull/17615)
* Incluir subredes autogeneradas para redes definidas por el usuario en `network inspect` [#17316](https://github.com/docker/docker/pull/17316)
* Añadir la bandera `--filter` a `network ls` para ocultar redes predefinidas [#17782](https://github.com/docker/docker/pull/17782)
* Añadir soporte para conectar/desconectar redes a contenedores detenidos [#18906](https://github.com/docker/docker/pull/18906)
* Añadir ID de red a la inspección de contenedores [#19323](https://github.com/docker/docker/pull/19323)
- Corregir un problema de MTU donde Docker no se iniciaba con dos o más rutas predeterminadas [#18108](https://github.com/docker/docker/pull/18108)
- Corregir direcciones IP duplicadas para contenedores [#18106](https://github.com/docker/docker/pull/18106)
- Corregir un problema que a veces impedía a docker crear la red bridge [#19338](https://github.com/docker/docker/pull/19338)
- No sustituir el servidor de nombres 127.0.0.1 al usar `--net=host` [#19573](https://github.com/docker/docker/pull/19573)

### Registros (Logging)

+ Nuevo controlador de registro para Splunk [#16488](https://github.com/docker/docker/pull/16488)
+ Añadir soporte para syslog sobre TCP+TLS [#18998](https://github.com/docker/docker/pull/18998)
* Mejorar `docker logs --since` y `--until` para admitir nanosegundos y hora [#17495](https://github.com/docker/docker/pull/17495)
* Mejorar los registros de AWS para detectar automáticamente la región [#16640](https://github.com/docker/docker/pull/16640)

### Volúmenes

+ Añadir soporte para establecer el modo de propagación de montaje para un volumen [#17034](https://github.com/docker/docker/pull/17034)
* Añadir endpoints `ls` e `inspect` a la API de plugins de volúmenes [#16534](https://github.com/docker/docker/pull/16534)
  Los plugins existentes necesitan hacer uso de estas nuevas API para satisfacer las expectativas del usuario
  Para ello, utiliza el nuevo tipo MIME `application/vnd.docker.plugins.v1.2+json` [#19549](https://github.com/docker/docker/pull/19549)
- Corregir la copia de datos a volúmenes con nombre [#19175](https://github.com/docker/docker/pull/19175)
- Corregir problemas que impedían que los controladores de volúmenes se contenedorizaran [#19500](https://github.com/docker/docker/pull/19500)
- Corregir `docker volumes ls --dangling=false` para que ahora muestre todos los volúmenes no huérfanos [#19671](https://github.com/docker/docker/pull/19671)
- No eliminar volúmenes con nombre al eliminar contenedores [#19568](https://github.com/docker/docker/pull/19568)
- Permitir que controladores de volúmenes externos alojen volúmenes anónimos [#19190](https://github.com/docker/docker/pull/19190)

### Constructor (Builder)

+ Añadir soporte para `**` en `.dockerignore` para usar comodines en múltiples niveles de directorios [#17090](https://github.com/docker/docker/pull/17090)
- Corregir el manejo de caracteres UTF-8 en Dockerfiles [#17055](https://github.com/docker/docker/pull/17055)
- Corregir problemas de permisos al leer desde STDIN [#19283](https://github.com/docker/docker/pull/19283)

### Cliente

+ Añadir soporte para anular la versión de la API a usar mediante la variable de entorno `DOCKER_API_VERSION` [#15964](https://github.com/docker/docker/pull/15964)
- Corregir un error que impedía a los clientes de Windows iniciar sesión en Docker Hub [#19891](https://github.com/docker/docker/pull/19891)

### Varios

* systemd: Establecer TasksMax además de LimitNPROC en el archivo de servicio de systemd [#19391](https://github.com/docker/docker/pull/19391)

### Depreciaciones

* Eliminar soporte para LXC. El controlador LXC se depreció en Docker 1.8 y ahora ha sido eliminado [#17700](https://github.com/docker/docker/pull/17700)
* Eliminar la bandera del demonio `--exec-driver`, ya que ya no se utiliza [#17700](https://github.com/docker/docker/pull/17700)
* Eliminar las antiguas banderas CLI largas con un solo guion (como `-rm`; usa `--rm` en su lugar) [#17724](https://github.com/docker/docker/pull/17724)
* Depreciar HostConfig al iniciar contenedores en la API [#17799](https://github.com/docker/docker/pull/17799)
* Depreciar los paquetes de Docker para distribuciones de Linux que acaban de llegar al final de su vida útil (EOL): Fedora 21 y Ubuntu 15.04 (Vivid) [#18794](https://github.com/docker/docker/pull/18794), [#18809](https://github.com/docker/docker/pull/18809)
* Depreciar la bandera `-f` para docker tag [#18350](https://github.com/docker/docker/pull/18350)

## 1.9.1 (2015-11-21)

### Tiempo de ejecución (Runtime)

- No impedir que el demonio se inicie si las imágenes no se pudieron restaurar (#17695)
- Forzar el desmontaje del montaje IPC al apagar/iniciar el demonio (#17539)
- Convertir los errores de desmontaje IPC en advertencias (#17554)
- Corregir la regresión de rendimiento en `docker stats` (#17638)
- Aclarar el mensaje de error críptico en `docker logs` si `--log-driver=none` (#17767)
- Corregir pánicos poco frecuentes (#17639, #17634, #17703)
- Corregir problemas de opq whiteouts para archivos con prefijo de punto (#17819)
- devicemapper: intentar usar xfs de forma predeterminada en lugar de ext4 por razones de rendimiento (#17903, #17918)
- devicemapper: corregir el sistema de archivos mostrado en docker info (#17974)
- selinux: solo volver a etiquetar si el usuario lo solicitó con la opción `z` (#17450, #17834)
- No realizar llamadas de red al normalizar nombres (#18014)

### Cliente

- Corregir `docker login` en Windows (#17738)
- Corregir un error en la salida de `docker inspect` cuando no está conectado al demonio (#17715)
- Corregir `docker inspect -f {{.HostConfig.Dns}} alguncontenedor` (#17680)

### Constructor (Builder)

- Corregir regresión con el comportamiento de enlaces simbólicos en ADD/COPY (#17710)

### Redes

- Permitir pasar un ID de red como argumento para `--net` (#17558)
- Corregir la conexión al host e impedir la desconexión del host para la red `host` (#17476)
- Corregir el problema con `--fixed-cidr` cuando la IP de la puerta de enlace cae en el rango de IP y el rango de IP no es el primer bloque en la red (#17853)
- Restaurar la generación determinista de `IPv6` a partir de la dirección `MAC` en la red `bridge` predeterminada (#17890)
- Permitir el mapeo de puertos solo para los endpoints creados en docker run (#17858)
- Se corrigió un problema de eliminación de endpoints con un sbox posiblemente obsoleto (#18102)

### Distribución

- Corregir la cadena principal en push v2 cuando los archivos v1Compatibility en el disco son inconsistentes (#18047)

## 1.9.0 (2015-11-03)

### Tiempo de ejecución (Runtime)

+ `docker stats` ahora devuelve métricas de E/S de bloques (#15005)
+ `docker stats` ahora detalla las estadísticas de red por interfaz (#15786)
+ Añadir el filtro `ancestor=<imagen>` a la bandera `docker ps --filter` para filtrar contenedores basados en sus imágenes ancestras (#14570)
+ Añadir el filtro `label=<algunavoluble>` a `docker ps --filter` para filtrar contenedores basados en la etiqueta (#16530)
+ Añadir la bandera `--kernel-memory` a `docker run` (#14006)
+ Añadir la bandera `--message` a `docker import` que permite especificar un mensaje opcional (#15711)
+ Añadir la bandera `--privileged` a `docker exec` (#14113)
+ Añadir la bandera `--stop-signal` a `docker run` que permite reemplazar la señal de parada del proceso del contenedor (#15307)
+ Añadir una nueva política de reinicio `unless-stopped` (#15348)
+ Inspeccionar una imagen ahora devuelve sus etiquetas (#13185)
+ Añadir información del tamaño del contenedor a `docker inspect` (#15796)
+ Añadir los campos `RepoTags` y `RepoDigests` a `/images/{name:.*}/json` (#17275)
- Eliminar el endpoint depreciado `/container/ps` de la API (#15972)
- Enviar y documentar códigos HTTP correctos para `/exec/<name>/start` (#16250)
- Compartir shm y mqueue entre contenedores que comparten el espacio de nombres IPC (#15862)
- El flujo de eventos ahora muestra el estado OOM cuando `--oom-kill-disable` está establecido (#16235)
- Asegurar que los archivos de red especiales (/etc/hosts, etc.) sean de solo lectura si se montan de forma vinculada (bind-mounted) con la opción `ro` (#14965)
- Mejorar el rendimiento de `rmi` (#16890)
- No actualizar /etc/hosts para la red bridge predeterminada, excepto para los enlaces (#17325)
- Corregir el conflicto con nombres de contenedor duplicados (#17389)
- Corregir un problema con la ejecución incorrecta de plantillas en `docker inspect` (#17284)
- DEPRECIAR la variante de bandera corta `-c` para `--cpu-shares` en docker run (#16271)

### Cliente

+ Permitir a `docker import` importar desde archivos locales (#11907)

### Constructor (Builder)

+ Añadir una instrucción `STOPSIGNAL` en el Dockerfile que permite establecer una señal de parada diferente para el proceso del contenedor (#15307)
+ Añadir una instrucción `ARG` en el Dockerfile y una bandera `--build-arg` a `docker build` que permite añadir variables de entorno en tiempo de construcción (#15182)
- Mejorar el rendimiento de los fallos de caché (#16890)

### Almacenamiento

- devicemapper: Implementar capacidad de eliminación diferida (#16381)

### Redes

+ `docker network` sale de la fase experimental y forma parte de la versión estándar (#16645)
+ Nuevo concepto de red a nivel superior, con sus respectivos subcomandos y API (#16645)
  ADVERTENCIA: la API is diferente de la API experimental
+ Soporte para múltiples redes aisladas/microsegmentadas (#16645)
+ Redes multi-host integradas usando el controlador overlay basado en VXLAN (#14071)
+ Soporte para plugins de red de terceros (#13424)
+ Capacidad de conectar dinámicamente contenedores a múltiples redes (#16645)
+ Soporte para la gestión de direcciones IP definidas por el usuario a través de controladores IPAM acoplables (#16910)
+ Añadir las banderas del demonio `--cluster-store` y `--cluster-advertise` para el descubrimiento integrado de nodos (#16229)
+ Añadir `--cluster-store-opt` para establecer la configuración TLS (#16644)
+ Añadir `--dns-opt` al demonio (#16031)
- DEPRECIAR los siguientes campos de `NetworkSettings` del contenedor en la API v1.21: `EndpointID`, `Gateway`, `GlobalIPv6Address`, `GlobalIPv6PrefixLen`, `IPAddress`, `IPPrefixLen`, `IPv6Gateway` y `MacAddress`.
  Estos son ahora específicos de la red `bridge`. Utiliza `NetworkSettings.Networks` para inspeccionar la configuración de red de un contenedor por red.

### Volúmenes

+ Nuevo subcomando y API de nivel superior `volume` (#14242)
- Mover la configuración del controlador de volumen de la API a la configuración específica del host (#15798)
- Imprimir un mensaje de error si el nombre del volumen no es único (#16009)
- Asegurar que los volúmenes creados a partir de Dockerfiles siempre utilicen el controlador de volumen local (#15507)
- DEPRECIAR la creación automática de rutas de host faltantes para montajes vinculados (bind mounts) (#16349)

### Registros (Logging)

+ Añadir el controlador de registro `awslogs` para Amazon CloudWatch (#15495)
+ Añadir la opción de registro genérica `tag` para permitir la personalización de la información del contenedor/imagen pasada al controlador (#15384)
- Implementar el endpoint `docker logs` para el controlador journald (#13707)
- DEPRECIAR las etiquetas de registro específicas del controlador (#15384)

### Distribución

+ `docker search` ahora funciona con nombres parciales (#16509)
- Optimización de push: evitar el almacenamiento en búfer en un archivo (#15493)
- El demonio mostrará el progreso de las imágenes que ya estaban siendo descargadas por otro cliente (#15489)
- Solo se solicitan los permisos requeridos para la acción actual que se está realizando (#)
+ Renombrar las claves de confianza (y las respectivas variables de entorno) de `offline` a `root` y de `tagging` a `repository` (#16894)
- DEPRECIAR las variables de entorno de claves de confianza `DOCKER_CONTENT_TRUST_OFFLINE_PASSPHRASE` y `DOCKER_CONTENT_TRUST_TAGGING_PASSPHRASE` (#16894)

### Seguridad

+ Añadir perfiles de SELinux al paquete rpm (#15832)
- Corregir varios problemas con los perfiles AppArmor proporcionados en el paquete deb (#14609)
- Añadir política de AppArmor que impide escribir en /proc (#15571)

## 1.8.3 (2015-10-12)

### Distribución

- Corregir que los ID de capa causen envenenamiento del gráfico local (CVE-2014-8178)
- Corregir errores lógicos de validación y análisis de manifiesto que permiten omitir la validación de pull-by-digest (CVE-2014-8179)
+ Añadir `--disable-legacy-registry` para evitar que un demonio utilice un registro v1

## 1.8.2 (2015-09-10)

### Distribución

- Corrige un caso de borde poco común en el manejo de entradas GNU LongLink y LongName entradas.
- Corregir ^C en docker pull.
- Corregir problemas de docker pull al desconectarse el cliente.
- Corregir un problema que provocaba que el demonio entrara en pánico cuando los registradores no estaban configurados correctamente.
- Corregir la fuga de goroutines al descargar imágenes del registro V2.

### Tiempo de ejecución (Runtime)

- Corregir un error al montar cgroups para los demonios de docker que se ejecutan dentro de contenedores docker.
- Inicializar la configuración de registro correctamente.

### Cliente:

- Manejar la bandera `-q` en `docker ps` correctamente cuando hay un formato predeterminado.

### Redes

- Corregir varios casos de borde con netlink.

### Contrib

- Corregir varios problemas con el completado de bash.

## 1.8.1 (2015-08-12)

### Distribución

* Corregir un error por el cual el envío de múltiples etiquetas daba como resultado imágenes no válidas

## 1.8.0 (2015-08-11)

### Distribución

+ Descarga (pull), envío (push) y construcción (build) de confianza, desactivados por defecto
* Hacer que las capas tar sean deterministas entre registros
* No permitir la eliminación de la imagen de contenedores en ejecución
* Comprobar si un nombre de etiqueta a cargar es un digest válido
* Permitir nombres de repositorio de un solo carácter
* Añadir una descripción de error más precisa para nombres de etiqueta no válidos
* Hacer que la caché de construcción ignore mtime

### Cli

+ Añadir soporte para DOCKER_CONFIG/--config para especificar el directorio del archivo de configuración
+ Añadir la bandera --type para el comando docker inspect
+ Añadir opciones de formato a `docker ps` con `--format`
+ Reemplazar `docker -d` con el nuevo subcomando `docker daemon`
* Actualizaciones y mejoras del completado de Zsh
* Añadir algunos eventos faltantes al completado de bash
* Admitir URL de demonio con rutas base en `docker -H`
* Validar el filtro status= en docker ps
* Mostrar cuando un contenedor está en --net=host en docker ps
* Extender docker inspect para exportar metadatos de imagen relacionados con el controlador de gráficos (graph driver)
* Restaurar las opciones del demonio --default-gateway{,-v6}
* Añadir puertos no publicados faltantes en docker ps
* Permitir cadenas de duración en `docker events` como --since/--until
* Exponer más información de montajes en `docker inspect`

### Tiempo de ejecución (Runtime)

+ Añadir nuevo controlador de registro Fluentd
+ Permitir a `docker import` cargar desde archivos locales
+ Añadir controlador de registro para GELF a través de UDP
+ Permitir copiar archivos del host a los contenedores con `docker cp`
+ Promover los controladores de volúmenes de experimentales a principales
+ Añadir opciones de rotación (rollover) al controlador de registro json-file, y la bandera --log-driver-opts
+ Añadir opciones de ajuste de la afinidad de intercambio de memoria (memory swappiness)
* Eliminar la bandera de solo lectura de cgroup cuando se es privilegiado
* Hacer que /proc, /sys y /dev sean de solo lectura para contenedores de solo lectura
* Añadir el montaje de cgroup por defecto
* Overlay: Exportar metadatos para contenedor e imagen en `docker inspect`
* Devicemapper: activación de dispositivo externo
* Devicemapper: Comparar el uuid del dispositivo base al iniciar
* Eliminar RC4 de la lista de suites de cifrado del registro
* Añadir la opción syslog-facility
* Compatibilidad del controlador de ejecución LXC con versiones recientes de LXC
* Marcar el controlador de ejecución LXC como depreciado (a ser eliminado con la migración a runc)

### Plugins

* Separar las ubicaciones de sockets y especificaciones de plugins
* Permitir conexiones TLS a plugins

### Corrección de errores (Bug fixes)

- Añadir el campo 'Names' faltante a la salida de la API /containers/json
- Hacer que `docker rmi` de imágenes huérfanas sea seguro mientras se descargan
- Devicemapper: Cambiar el basesize predeterminado a 100G
- Problema del programador de Go con sync.Mutex y gcc
- Corregir un problema por el cual el endpoint de la API Search entraba en pánico debido a un AuthConfig vacío
- Establecer los nombres canónicos de la imagen correctamente
- Comprobar dockerinit solo si se utiliza el controlador lxc
- Corregir el uso de nproc por ulimit
- Adjuntar siempre STDIN si se especifica -i,--interactive
- Mostrar mensajes de error cuando falla el guardado del estado del contenedor
- Se corrigió la suposición incorrecta sobre --bridge=none tratado como red desactivada
- Comprobar especificaciones de puerto no válidas en la configuración del host
- Corregir el fallo al salir del endpoint para el modo --net=host
- Corregir la fuga de goroutines en la API de estadísticas si el contenedor no se está ejecutando
- Comprobar el archivo apparmor antes de leerlo
- Corregir que se ignore DOCKER_TLS_VERIFY
- Establecer umask al valor predeterminado al iniciar
- Corregir el mensaje al pausar y reanudar un contenedor que no está en ejecución
- Ajustar CpuShares no permitidos en la creación de contenedores
- ZFS: aplicar correctamente el contexto de selinux
- Mostrar una cadena vacía en lugar de <nil> cuando IP opt es nil
- `docker kill` devuelve un error cuando el contenedor no está en ejecución
- Corregir la forma citada/json de COPY/ADD
- Corregir la fuga de goroutines en logs -f sin salida
- Eliminar pánico en el paquete nat ante un puerto de host no válido
- Corregir la vinculación de contenedores en Fedora 22
- Corregir el error causado al usar puertas de enlace predeterminadas fuera del rango asignado
- Formatear las horas en el comando inspect con una plantilla como RFC3339Nano
- Hacer que el cliente del registro acepte respuestas de estado http 2xx y 3xx como exitosas
- Corregir un problema de carrera que provocaba que el demonio fallara cuando fallaban ciertas descargas de capas en un orden específico.
- Corregir el error cuando el formato de docker ps no era válido.
- Eliminar la desviación de reenvío de IP redundante.
- Corregir un problema al intentar enviar imágenes a espejos de repositorios (repository mirrors).
- Corregir el error al limpiar los puntos de entrada de red cuando hay un problema de inicialización.

## 1.7.1 (2015-07-14)

### Tiempo de ejecución (Runtime)

- Corregir que el usuario predeterminado genere el proceso exec con `docker exec`
- Hacer que `--bridge=none` no configure el puente de red
- Publicar las estadísticas de red correctamente
- Corregir la selección implícita de devicemapper con binarios estáticos
- Corregir las conexiones de socket que se colgaban intermitentemente
- Corregir la creación de la interfaz del puente en CentOS/RHEL 6.6
- Corregir las búsquedas de DNS local añadidas a resolv.conf
- Corregir el comando copy montando volúmenes
- Corregir los privilegios de lectura/escritura en volúmenes montados con --volumes-from

### API remota (Remote API)

- Corregir la deserialización de Command y Entrypoint
- Establecer el límite para la versión mínima de cliente admitida
- Validar la especificación del puerto
- Devolver errores adecuados cuando fallan attach/reattach

### Distribución

- Corregir la descarga de imágenes privadas
- Corregir la alternancia entre la versión V2 y V1 del registro

## 1.7.0 (2015-06-16)

### Tiempo de ejecución (Runtime)
+ Función experimental: soporte para plugins de volúmenes fuera de proceso
* El proxy userland se puede desactivar en favor de hairpin NAT utilizando la bandera del demonio `--userland-proxy=false`
* El comando `exec` admite la bandera `-u|--user` para especificar el propietario del nuevo proceso
+ La puerta de enlace predeterminada para los contenedores se puede especificar para todo el demonio utilizando las banderas `--default-gateway` y `--default-gateway-v6`
+ La cuota de CPU CFS (Completely Fair Scheduler) se puede establecer en `docker run` usando `--cpu-quota`
+ Las E/S de bloques del contenedor se pueden controlar en `docker run` usando `--blkio-weight`
+ Soporte para ZFS
+ El comando `docker logs` admite un argumento `--since`
+ El espacio de nombres UTS se puede compartir con el host con `docker run --uts=host`

### Calidad (Quality)
* La pila de red se reescribió por completo como parte del esfuerzo de libnetwork
* Refactorización interna del motor (Engine)
* El código de volúmenes se reescribió por completo para admitir el esfuerzo de los plugins
+ Enviar SIGUSR1 a un demonio volcará las pilas de todas las goroutines sin salir

### Construcción (Build)
+ Admitir la sintaxis ${variable:-value} y ${variable:+value} para variables de entorno
+ Admitir banderas de gestión de recursos `--cgroup-parent`, `--cpu-period`, `--cpu-quota`, `--cpuset-cpus`, `--cpuset-mems`
+ Cambios en el contexto de git con ramas y directorios
* El archivo .dockerignore admite reglas de exclusión

### Distribución
+ Soporte en el cliente para el espejo v2 del registro oficial

### Corrección de errores (Bugfixes)
* Firewalld ahora está admitido y se utilizará automáticamente cuando esté disponible
* Montaje recursivo de `--device`

## 1.6.2 (2015-05-13)

### Tiempo de ejecución (Runtime)
- Revertir el cambio que prohibía montar en /sys

## 1.6.1 (2015-05-07)

### Seguridad
- Corregir rutas de lectura/escritura en /proc (CVE-2015-3630)
- Prohibir VOLUME /proc y VOLUME / (CVE-2015-3631)
- Corregir la apertura del descriptor de archivo 1 (CVE-2015-3627)
- Corregir el recorrido de enlaces simbólicos al reaparecer el contenedor, lo que permitía la escalada de privilegios locales (CVE-2015-3629)
- Prohibir el montaje de /sys

### Tiempo de ejecución (Runtime)
- Actualizar la política de AppArmor para no permitir montajes

## 1.6.0 (2015-04-07)

### Constructor (Builder)
+ Construcción de imágenes a partir de un ID de imagen
+ Construir contenedores con restricciones de recursos, por ejemplo, `docker build --cpu-shares=100 --memory=1024m...`
+ `commit --change` para aplicar las instrucciones de Dockerfile especificadas al confirmar (commit) la imagen
+ `import --change` para aplicar las instrucciones de Dockerfile especificadas al importar la imagen
+ Las construcciones ya no continúan en segundo plano cuando se cancelan con CTRL-C

### Cliente
+ Soporte para Windows

### Tiempo de ejecución (Runtime)
+ Etiquetas (Labels) de contenedores e imágenes
+ `--cgroup-parent` para especificar un cgroup padre en el cual colocar el cgroup del contenedor
+ Controlador de registro (Logging drivers): `json-file`, `syslog` o `none`
+ Descarga de imágenes por ID
+ `--ulimit` para establecer el ulimit en un contenedor
+ Opción `--default-ulimit` en el demonio que se aplica a todos los contenedores creados (y se anula por `--ulimit` al ejecutar)

## 1.5.0 (2015-02-10)

### Constructor (Builder)
+ El Dockerfile a usar para un `docker build` determinado se puede especificar con la bandera `-f`
* Los archivos Dockerfile y .dockerignore pueden ser excluidos como parte del archivo .dockerignore, evitando así que las modificaciones a estos archivos invaliden la caché de las instrucciones ADD o COPY
* Las instrucciones ADD y COPY admiten rutas relativas
* La instrucción del Dockerfile `FROM scratch` ahora se interpreta como un especificador sin base
* Mejorar el rendimiento al exponer una gran cantidad de puertos

### Hack
+ Permitir pruebas de integración solo del lado del cliente para Windows
* Incluir pruebas de integración de docker-py contra el demonio de Docker como parte de nuestras suites de pruebas

### Empaquetado (Packaging)
+ Soporte para la nueva versión de la API HTTP del registro
* Acelerar `docker push` para imágenes con la mayoría de capas ya existentes
- Se corrigió el contacto con un registro privado a través de un proxy

### API remota (Remote API)
+ Un nuevo endpoint transmitirá métricas en vivo de los recursos del contenedor y se puede acceder con el comando `docker stats`
+ Los contenedores se pueden renombrar utilizando el nuevo endpoint `rename` y el comando asociado `docker rename`
* El endpoint `inspect` del contenedor muestra el ID de los comandos `exec` que se ejecutan en este contenedor
* El endpoint `inspect` del contenedor muestra el número de veces que Docker reinició automáticamente el contenedor
* Se pueden transmitir nuevos tipos de eventos mediante el endpoint `events`: 'OOM' (el contenedor murió por falta de memoria), 'exec_create' y 'exec_start'
- Se corrigieron los campos de cadena devueltos que contienen caracteres numéricos omitiendo incorrectamente las comillas dobles circundantes

### Tiempo de ejecución (Runtime)
+ El demonio de Docker tiene soporte completo para IPv6
+ El comando `docker run` puede tomar la bandera `--pid=host` para usar el espacio de nombres de PID del host, lo que hace posible, por ejemplo, depurar procesos del host usando herramientas de depuración contenedorizadas
+ El comando `docker run` puede tomar la bandera `--read-only` para hacer que el sistema de archivos raíz del contenedor se monte como solo lectura, lo que se puede usar en combinación con volúmenes para forzar a los procesos de un contenedor a escribir solo en ubicaciones que serán persistidas
+ El uso total de memoria del contenedor se puede limitar para `docker run` usando la bandera `--memory-swap`
* Grandes mejoras de estabilidad para el controlador de almacenamiento devicemapper
* Mejor integración con el sistema host: los contenedores reflejarán los cambios en el archivo `/etc/resolv.conf` del host cuando se reinicien
* Mejor integración con el sistema host: las reglas de iptables por contenedor se mueven a la cadena DOCKER
- Se corrigió que el contenedor al salir por falta de memoria devolviera un código de salida no válido

### Otros (Other)
* Las variables de entorno HTTP_PROXY, HTTPS_PROXY y NO_PROXY son tenidas en cuenta correctamente por el cliente al conectarse al demonio de Docker

## 1.4.1 (2014-12-15)

### Tiempo de ejecución (Runtime)
- Corregir el problema por el cual volumes-from y los montajes vinculados (bind mounts) no se respetaban después de la creación

## 1.4.0 (2014-12-11)

### Características notables desde 1.3.0
+ Establecer etiquetas clave=valor en el demonio (mostradas en `docker info`), aplicadas con la nueva bandera del demonio `-label`
+ Añadir soporte para `ENV` en Dockerfile de la forma:
  `ENV name=value name2=value2...`
+ Nuevo controlador de almacenamiento Overlayfs
+ `docker info` ahora devuelve los campos `ID` y `Name`
+ Filtrar eventos por nombre de evento, contenedor o imagen
+ `docker cp` ahora admite copiar desde volúmenes de contenedor
- Se corrigió `docker tag` para que respete `--force` al anular una etiqueta para una imagen existente.

## 1.3.3 (2014-12-11)

### Seguridad
- Corregir vulnerabilidad de recorrido de rutas al procesar enlaces simbólicos absolutos (CVE-2014-9356)
- Corregir la descompresión de archivos de imagen xz, lo que impedía la escalada de privilegios (CVE-2014-9357)
- Validar los ID de imagen (CVE-2014-9358)

### Tiempo de ejecución (Runtime)
- Corregir un problema cuando los archivos de imagen se leen lentamente

### Cliente
- Corregir una regresión relacionada con la redirección de stdin
- Corregir una regresión con `docker cp` cuando el destino es el directorio actual

## 1.3.2 (2014-11-20)

### Seguridad
- Corregir vulnerabilidad de escape de tar (tar breakout)
* Las extracciones ahora están en un chroot aislado (sandboxed)
- Las opciones de seguridad ya no se guardan (commit) en las imágenes

### Tiempo de ejecución (Runtime)
- Corregir bloqueo mutuo (deadlock) en `docker ps -f exited=1`
- Corregir un error cuando `--volumes-from` hace referencia a un contenedor que no pudo iniciarse

### Registro (Registry)
+ `--insecure-registry` ahora acepta la notación CIDR como 10.1.0.0/16
* Los registros privados cuyas IP caen en el rango 127.0.0.0/8 no necesitan la bandera `--insecure-registry`
- Omitir la API experimental del registro v2 cuando el mirroring está habilitado

## 1.3.1 (2014-10-28)

### Seguridad
* Evitar la degradación a protocolos SSL < TLS 1.0 para cliente, demonio y registro
+ Conexión HTTPS segura a registros con verificación de certificado y sin degradación a HTTP a menos que se especifique `--insecure-registry`

### Tiempo de ejecución (Runtime)
- Corregir el problema por el cual los volúmenes no se compartían

### Cliente
- Corregir el problema por el cual `--iptables=false` no establecía automáticamente `--ip-masq=false`
- Corregir la salida de docker run a un stdout que no sea TTY

### Constructor (Builder)
- Corregir el escape de `$` para variables de entorno
- Corregir el problema con la instrucción Dockerfile `onbuild` en minúsculas
- Restringir la expansión de variables de entorno a `ENV`, `ADD`, `COPY`, `WORKDIR`, `EXPOSE`, `VOLUME` y `USER`

## 1.3.0 (2014-10-14)

### Características notables desde 1.2.0
+ Docker `exec` te permite ejecutar procesos adicionales dentro de contenedores existentes
+ Docker `create` te brinda la capacidad de crear un contenedor a través de la CLI sin ejecutar un proceso
+ Opciones `--security-opts` para permitir al usuario personalizar las etiquetas del contenedor y los perfiles de apparmor
+ Filtros de Docker `ps`
- Soporte de comodines para COPY/ADD
+ Mover las URL de producción a get.docker.com desde get.docker.io
+ Asignar dirección IP en el puente dentro de un CIDR válido
+ Usar drone.io para pruebas de relaciones de PR y CI
+ Capacidad de configurar un espejo del registro oficial
+ Capacidad de guardar múltiples imágenes con docker `save`

## 1.2.0 (2014-08-20)

### Tiempo de ejecución (Runtime)
+ Hacer que /etc/hosts /etc/resolv.conf y /etc/hostname sean editables en tiempo de ejecución
+ Reiniciar contenedores automáticamente mediante políticas
+ Usar /var/lib/docker/tmp para archivos temporales grandes
+ `--cap-add` y `--cap-drop` para ajustar qué capacidades de linux deseas
+ `--device` para utilizar dispositivos en los contenedores

### Cliente
+ `docker search` en registros privados
+ Añadir el filtro `exited` a `docker ps --filter`
* `docker rm -f` ahora mata (kills) el contenedor en lugar de detenerlo
+ Soporte para direcciones IPv6 en la bandera `--dns`

### Proxy
+ Instancias de proxy en procesos separados
* Pequeña corrección de errores en el proxy UDP

## 1.1.2 (2014-07-23)

### Tiempo de ejecución (Runtime)
+ Corregir la asignación de puertos para contenedores existentes
+ Corregir el reinicio de contenedores al reiniciar el demonio

### Empaquetado (Packaging)
+ Corregir el problema con /etc/init.d/docker en Debian

## 1.1.1 (2014-07-09)

### Constructor (Builder)
* Corregir el problema con ADD

## 1.1.0 (2014-07-03)

### Características notables desde 1.0.1
+ Añadir soporte para `.dockerignore`
+ Pausar contenedores durante `docker commit`
+ Añadir `--tail` a `docker logs`

### Constructor (Builder)
+ Permitir un archivo tar como contexto para `docker build`
* Corregir el problema con los espacios en blanco y las líneas múltiples en los `Dockerfiles`

### Tiempo de ejecución (Runtime)
* Mejoras generales de rendimiento
* Permitir `/` como origen de `docker run -v`
* Corregir la asignación de puertos
* Corregir error en `docker save`
* Añadir información de enlaces (links) a `docker inspect`

### Cliente
* Mejorar el análisis de la línea de comandos para `docker commit`

### API remota (Remote API)
* Mejorar el código de estado para los endpoints `start` y `stop`

## 1.0.1 (2014-06-19)

### Características notables desde 1.0.0
* Mejorar la seguridad para el controlador LXC

### Constructor (Builder)
* Corregir la instrucción `ONBUILD` pasada a los descendientes

### Tiempo de ejecución (Runtime)
* Corregir la suscripción a eventos
* Corregir el archivo /etc/hostname con redes de host
* Permitir `-h` y `--net=none`
* Corregir el problema con dispositivos de conexión en caliente (hotplug) en `--privileged`

### Cliente
* Corregir problemas con eventos
* Corregir un pánico con banderas vacías
* Corregir `docker cp` en Mac OS X

### Varios (Miscellaneous)
* Corregir la compilación en Mac OS X
* Corregir varias condiciones de carrera

## 1.0.0 (2014-06-09)

### Características notables desde 0.12.0
* Soporte para producción

## 0.12.0 (2014-06-05)

### Características notables desde 0.11.0
* Más de 40 mejoras diversas en estabilidad, rendimiento y usabilidad
* Nueva instrucción `COPY` en el Dockerfile para permitir copiar un archivo local desde el contexto al contenedor sin llegar a extraerlo si el archivo es un archivo tar
* Heredar permisos de archivos del host en `ADD`
* Nuevos comandos `pause` y `unpause` para permitir pausar y reanudar contenedores usando el congelador (freezer) cgroup
* El comando `images` tiene una opción `-f`/`--filter` para filtrar la lista de imágenes
* Añadir `--force-rm` para limpiar después de una construcción fallida
* Estandarizar las claves JSON en la API remota a CamelCase
* La descarga desde un docker run ahora asume la etiqueta `latest` si no se especifica
* Mejorar la seguridad en las capacidades de Linux y nodos de dispositivos

## 0.11.1 (2014-05-07)

### Registro (Registry)
- Corregir el envío (push) y la descarga (pull) al registro privado

## 0.11.0 (2014-05-07)

### Características notables desde 0.10.0

* Soporte de SELinux para etiquetas de montaje y de proceso
* Se puede acceder a los contenedores vinculados mediante el nombre de host
* Usar la bandera de red `--net` para permitir una configuración de red avanzada, como la red de host, de modo que los contenedores puedan usar las interfaces de red del host
* Añadir un endpoint ping a la API remota para realizar comprobaciones de estado de tu demonio de docker
* Los registros (logs) ahora se pueden devolver con una marca de tiempo opcional
* Docker ahora funciona con registros que admiten SHA-512
* Se admiten múltiples endpoints de registro para permitir espejos de registro

## 0.10.0 (2014-04-08)

### Constructor (Builder)
- Corregir la impresión de múltiples mensajes en una sola línea. Corrige la salida rota durante las construcciones.
- Seguir enlaces simbólicos dentro de la raíz del contenedor para las instrucciones de construcción ADD.
- Corregir el almacenamiento en caché de EXPOSE.

### Documentación (Documentation)
- Añadir las nuevas opciones de `docker ps` a la documentación.
- Añadir las opciones de `docker restart` a la documentación.
- Actualizar los documentos del demonio y los mensajes de ayuda para --iptables and --ip-forward.
- Ejemplo actualizado de documentos de apt-cacher-ng.
- Eliminar la descripción duplicada de --mtu de los documentos.
- Añadir los modificadores faltantes -t y -v para `docker images` a los documentos.
- Añadir correcciones a los documentos de la cli.
- Actualizar los documentos de libcontainer.
- Actualizar las imágenes en los documentos para eliminar referencias a AUFS y LXC.
- Actualizar nodejs_web_app en los documentos para usar la nueva dirección RPM de epel.
- Corregir enlace externo sobre seguridad de contenedores.
- Actualizar los documentos de la API remota.
- Añadir el tamaño de la imagen a los documentos de historial.
- Ser explícito sobre la vinculación a todas las interfaces en el ejemplo de redis.
- Documentar la bandera DisableNetwork en la API remota 1.10.
- Documentar que `--lxc-conf` es solo para lxc.
- Añadir documentación de uso de chef.
- Añadir ejemplo para una imagen con múltiples para `docker load`.
- Explicar qué hace `docker run -a` en los documentos.

### Contrib
- Add variable for DOCKER_LOGFILE to sysvinit and use append instead of overwrite in opening the logfile. -> Añadir variable para DOCKER_LOGFILE a sysvinit y usar append en lugar de sobrescribir al abrir el archivo de registro.
- Corregir las soluciones alternativas de montaje de cgroup del script de inicio para que sean más similares a cgroupfs-mount y, por lo tanto, funcionen correctamente.
- Eliminar el truco inotifywait del ejemplo de integración con el host upstart porque ya no es necesario.
- Añadir el script check-config a contrib.
- Corregir la finalización de fish shell.

### Hack
* Limpiar la salida de "go test" de "make test" para que sea mucho más legible y analizable.
* Excluir más directorios de "código fuente de Go definitivamente sin pruebas unitarias" de hack/make/test.
+ Generar hashes md5 y sha256 al construir, y cargarlos mediante hack/release.sh.
- Incluir finalizaciones contribuidas en Ubuntu PPA.
+ Añadir pruebas de integración de la cli.
* Añadir ajustes a los scripts de hack para hacerlos más sencillos.

### API remota (Remote API)
+ Añadir soporte de autenticación TLS para la API.
* Mover el clon de git del demonio al cliente.
- Corregir la detección de content-type en docker cp.
* Dividir la API en 2 paquetes de go.

### Tiempo de ejecución (Runtime)
* Admitir hairpin NAT sin pasar por el servidor Docker.
- devicemapper: tener éxito inmediatamente al eliminar dispositivos inexistentes.
- devicemapper: mejorar el manejo de dispositivos devicemapper (añadir bloqueo por dispositivo, aumentar el tiempo de espera y desbloquear mientras se duerme).
- devicemapper: aumentar el tiempo de espera en waitClose a 10 segundos.
- devicemapper: asegurar que cerramos el thin pool limpiamente.
- devicemapper: pasar info, en lugar de hash, a activateDeviceIfNeeded, deactivateDevice, setInitialized, deleteDevice.
- devicemapper: evitar el bloqueo mutuo AB-BA.
- devicemapper: hacer que el apagado sea mejor y más rápido.
- mejorar la clasificación alfabética en mflag.
- Eliminar la gestión manual de cookies http porque se está utilizando cookiejar.
- Usar el modo raw de BSD en Darwin. Corrige nano, tmux y otros.
- Añadir soporte de FreeBSD para el cliente.
- Fusionar el paquete auth en el registro.
- Añadir advertencia de depreciación para -t en `docker pull`.
- Eliminar fuga de goroutines ante errores.
- Actualizar parseLxcInfo para cumplir con el nuevo formato lxc1.0.
- Corregir la salida de attach en darwin.
- Mejorar el mensaje de depreciación.
- Reintentar recuperar los metadatos de capa hasta 5 veces para `docker pull`.
- Solo desasociar (unshare) el espacio de nombres de montaje para execin.
- Fusionar la configuración existente al confirmar (commit).
- Desactivar el tiempo de espera de inicio del demonio.
- Corregir el problema #4681: añadir interfaz de loopback cuando las redes están desactivadas.
- Añadir caso de prueba fallido para el problema #4681.
- Enviar SIGTERM al hijo, en lugar de SIGKILL.
- Mostrar la versión del controlador y del kernel en `docker info` incluso cuando no está en modo de depuración.
- Crear siempre un enlace simbólico de /dev/ptmx para libcontainer. Esto corrige problemas relacionados con la consola.
- Corregir el problema causado por la ausencia de /etc/apparmor.d.
- No dejar un archivo cidFile vacío cuando falle la creación del contenedor.
- Montar cgroups automáticamente si aún no están montados.
- Usar mock para las pruebas de búsqueda (search).
- Actualizar al guion doble en todas partes.
- Mover el análisis de .dockerenv al controlador lxc.
- Mover todos los montajes vinculados en el contenedor dentro del espacio de nombres.
- No utilizar un montaje vinculado separado para el contenedor.
- Crear siempre un enlace simbólico de /dev/ptmx para libcontainer.
- No matar por pid para otros controladores.
- Añadir registro inicial a libcontainer.
* Clasificar por puerto en `docker ps`.
- Mover los controladores de red al paquete de nivel superior de runtime.
+ Añadir `--no-prune` a `docker rmi`.
+ Añadir el tiempo transcurrido desde la salida en `docker ps`.
- graphdriver: añadir etiquetas de construcción.
- Evitar la asignación de puertos previamente asignados y mejorar la asignación de puertos.
* Añadir soporte para --since/--before en `docker ps`.
- Limpiar la detención del contenedor.
+ Añadir soporte para dominios de búsqueda DNS configurables.
- Añadir soporte para instrucciones WORKDIR relativas.
- Añadir la bandera --output para docker save.
- Eliminar la duplicación de DNS entries en config merging. -> Eliminar la duplicación de entradas DNS al fusionar configuraciones.
- Añadir cpuset.cpus a las opciones de cgroups y del controlador nativo.
- Eliminar docker-ci.
- Promover btrfs. btrfs ya no se considera experimental.
- Añadir la bandera --input a `docker load`.
- Devolver un error cuando el puente existente no coincide con la dirección IP.
- Eliminar los comentarios antes de analizar las continuaciones de línea para evitar interpretar las instrucciones como comentarios.
- Corregir TestOnlyLoopbackExistsWhenUsingDisableNetworkOption para ignorar las interfaces "DOWN".
- Añadir la implementación de systemd de cgroups y hacer que los contenedores se muestren como unidades de systemd.
- Corregir commit e import cuando no se especifica ningún repositorio.
- Volver a montar /var/lib/docker como --private para corregir el problema de escalabilidad.
- Usar el proxy del entorno al hacer ping al registro remoto.
- Reducir el nivel de error para errores inofensivos.
* Permitir que --volumes-from sean archivos individuales.
- Corregir el búfer de expansión en StdCopy.
- Establecer el error independientemente de attach o stdin. Esto corrige #3364.
- Añadir soporte para --env-file para cargar variables de entorno desde archivos.
- Crear enlace simbólico de /etc/mtab y /proc/mounts.
- Permitir el envío de una sola etiqueta.
- Apagar los contenedores limpiamente al apagar y esperar indefinidamente a que los contenedores se apaguen. Esto hace que el apagado del contenedor al apagar el demonio funcione correctamente a través de SIGTERM.
- No lanzar errores al iniciar un contenedor que ya se está ejecutando.
- Corregir el límite dinámico de asignación de puertos.
- Eliminar setupDev de libcontainer.
- Añadir la versión de la API a `docker version`.
- Devolver el código de salida correcto al recibir una señal y hacer que SIGQUIT salga sin limpiar.
- Corregir el fallo de montaje de --volumes-from.
- Permitir que los contenedores no privilegiados creen nodos de dispositivo.
- Omitir las pruebas de inicio de sesión debido a la dependencia externa de un servicio alojado.
- Depreciar `docker images --tree` y `docker images --viz`.
- Depreciar `docker insert`.
- Incluir la abstracción base para apparmor. Esto corrige algunos problemas relacionados con apparmor en Ubuntu 14.04.
- Añadir un mensaje de error específico al encontrar un 401 a través de HTTP al realizar push.
- Corregir la comprobación del volumen absoluto.
- Eliminar volumes-from de la configuración.
- Mover las opciones de DNS a hostconfig.
- Actualizar el perfil de apparmor para libcontainer.
- Añadir aviso de depreciación para `docker commit -run`.

## 0.9.1 (2014-03-24)

### Constructor (Builder)
- Corregir la impresión de múltiples mensajes en una sola línea. Corrige la salida rota durante las construcciones.

### Documentación (Documentation)
- Corregir enlace externo sobre seguridad de contenedores.

### Contrib
- Corregir las soluciones alternativas de montaje de cgroup del script de inicio para que sean más similares a cgroupfs-mount y, por lo tanto, funcionen correctamente.
- Añadir variable para DOCKER_LOGFILE a sysvinit y usar append en lugar de sobrescribir al abrir el archivo de registro.

### Hack
- Generar hashes md5 y sha256 al construir y cargarlos a través de hack/release.sh.

### API remota (Remote API)
- Corregir la detección de content-type en `docker cp`.

### Tiempo de ejecución (Runtime)
- Usar el modo raw de BSD en Darwin. Corrige nano, tmux y otros.
- Solo desasociar el espacio de nombres de montaje para execin.
- Reintentar recuperar los metadatos de capa hasta 5 veces para `docker pull`.
- Fusionar la configuración existente al confirmar (commit).
- Corregir pánico en el monitor.
- Desactivar el tiempo de espera de inicio del demonio.
- Corregir el problema #4681: añadir interfaz de loopback cuando las redes están desactivadas.
- Añadir caso de prueba fallido para el problema #4681.
- Enviar SIGTERM al hijo, en lugar de SIGKILL.
- Mostrar la versión del controlador y del kernel en `docker info` incluso cuando no está en modo de depuración.
- Crear siempre un enlace simbólico de /dev/ptmx para libcontainer. Esto corrige problemas relacionados con la consola.
- Corregir el problema causado por la ausencia de /etc/apparmor.d.
- No dejar un archivo cidFile vacío cuando falle la creación del contenedor.
- Mejorar el mensaje de depreciación.
- Corregir la salida de attach en darwin.
- devicemapper: mejorar el manejo de dispositivos devicemapper (añadir bloqueo por dispositivo, aumentar el tiempo de espera, desbloquear mientras se duerme).
- devicemapper: tener éxito inmediatamente al eliminar dispositivos inexistentes.
- devicemapper: aumentar el tiempo de espera en waitClose a 10 segundos.
- Eliminar fuga de goroutines ante errores.
- Actualizar parseLxcInfo para cumplir con el nuevo formato lxc1.0.

## 0.9.0 (2014-03-10)

### Constructor (Builder)
- Evitar el montaje/desmontaje adicional durante la construcción. Esto corrige los errores relacionados con el montaje/desmontaje durante la construcción.
- Añadir error a docker build --rm. Esto añade la gestión de errores faltante.
- Prohibir disparadores (triggers) encadenados de onbuild, `onbuild from` y `onbuild maintainer`.
- Hacer de `--rm` la opción predeterminada para `docker build`.

### Documentación (Documentation)
- Descargar el binario del cliente docker para Mac a través de https.
- Actualizar los títulos de las instrucciones de instalación y las descripciones.
* Añadir instrucciones para actualizar boot2docker.
* Añadir ejemplo de reenvío de puertos en los documentos de instalación de OS X.
- Intentar desenredar el repositorio y el registro.
- Actualizar los documentos para explicar más sobre `docker ps`.
- Actualizar el ejemplo de sshd para usar un Dockerfile.
- Reestructurar algunos ejemplos, incluidos los ejemplos de Python.
- Actualizar los documentos para incluir instrucciones para el ciclo de vida de un contenedor.
- Actualizar la documentación para discutir la rama de documentos.
- No omitir la verificación de certificado para un ejemplo y usar HTTPS.
- Recuperar la sección de contabilidad de memoria y swap que se perdió cuando se eliminó la página del kernel.
- Explicar las advertencias de DNS y cómo corregirlas en sistemas que ejecutan y usan un servidor de nombres local.

### Contrib
- Añadir soporte de Tanglu para mkimage-debootstrap.
- Añadir soporte de SteamOS para mkimage-debootstrap.

### Hack
- Obtener cobertura de paquetes al ejecutar pruebas de integración.
- Eliminar el archivo Vagrantfile. Este está siendo reemplazado con boot2docker.
- Corregir pruebas en sistemas donde aufs no está disponible.
- Actualizar las instrucciones de empaquetado y eliminar la dependencia de lxc.

### API remota (Remote API)
* Mover el código específico de la API al paquete api.
- Corregir el tipo de contenido del encabezado (header content type) para la API. Hace que todos los endpoints utilicen el tipo de contenido adecuado.
- Corregir la autenticación del registro y eliminar las llamadas de ping de CmdPush y CmdPull.
- Añadir nuevas líneas a las funciones de flujo JSON.

### Tiempo de ejecución (Runtime)
* No hacer ping al registro desde la CLI. Todas las solicitudes a los registros fluyen a través del demonio.
- Comprobar el retorno de información nula en el controlador lxc. Esto corrige pánicos con versiones anteriores de lxc.
- Devicemapper: limpiezas y corrección para el desmontaje. Corrige dos problemas que causaban que el desmontaje fallara intermitentemente.
- Devicemapper: eliminar el directorio al eliminar el dispositivo. Los directorios no se quedan atrás al eliminar el dispositivo.
* Devicemapper: habilitar skip_block_zeroing. Mejora el rendimiento al no rellenar con ceros los bloques.
- Devicemapper: corregir advertencias de apagado. Corrige advertencias de apagado relacionadas con la eliminación del dispositivo de pool.
- Asegurar que el flujo de `docker cp` esté cerrado correctamente. Corrige problemas con archivos que no se copiaban mediante `docker cp`.
- Dejar de hacer que `tcp://` predetermine a `127.0.0.1:4243` y eliminar el puerto predeterminado para tcp.
- Corregir `--run` en `docker commit`. Esto hace que `docker commit --run` vuelva a funcionar.
- Corregir opciones relacionadas con puentes personalizados. Esto hace que los puentes personalizados funcionen nuevamente.
+ Montar y vincular el PTY como consola del contenedor. Esto permite que se ejecute tmux/screen.
+ Añadir la biblioteca pura de Go libcontainer para hacer posible ejecutar contenedores usando solo características del kernel de Linux.
+ Añadir el controlador de ejecución nativo que utiliza libcontainer y convertirlo en el controlador de ejecución predeterminado.
- Añadir soporte para el manejo de atributos extendidos en archivos.
* Establecer el MTU del contenedor para que sea el mismo que el MTU del host.
+ Añadir sumas de comprobación sha256 simples para las capas para acelerar `docker push`.
* Mejorar el análisis de la versión del kernel.
* Permitir la agrupación de banderas (`docker run -it`).
- Eliminar el controlador de ejecución chroot.
- Corregir división por cero para corregir pánicos.
- Reescribir `docker rmi`.
- Corregir docker info con lxc 1.0.0.
- Corregir tty de fedora con apparmor.
* No añadir siempre variables de entorno, reemplazar los valores predeterminados con variables de la configuración.
* Corregir una fuga de goroutines.
* Cambiar a Go 1.2.1.
- Corregir comprobaciones de errores de restricción única.
* Manejar enlaces simbólicos para el directorio de datos de Docker y para TMPDIR.
- Añadir advertencias de depreciación para banderas (se deprecia -bandera en favor de --bandera)
- Añadir perfil de apparmor para el controlador de ejecución nativo.
* Mover código específico del sistema de archive a pkg/system.
- Corregir señal duplicada para `docker run -i -t` (problema #3336).
- Devolver el pid de proceso correcto para lxc.
- Añadir una opción -G para especificar el grupo al que pertenecen los sockets unix.
+ Añadir la bandera `-f` a `docker rm` para forzar la eliminación de contenedores en ejecución.
+ Matar contenedores fantasma y reiniciar todos los contenedores fantasma cuando se reinicia el demonio de docker.
+ Añadir la variable de entorno `DOCKER_RAMDISK` para hacer que Docker funcione cuando la raíz está en un disco RAM.

## 0.8.1 (2014-02-18)

### Constructor (Builder)

- Evitar el montaje/desmontaje adicional durante la construcción. Esto elimina una operación de montaje/desmontaje innecesaria que causaba problemas con devicemapper
- Corregir la regresión con ADD de archivos tar. Esto evita que Docker descomprima archivos tar añadidos mediante ADD desde el sistema de archivos local
- Añadir error a `docker build --rm`. Esto añade una verificación de errores faltante para asegurar que los fallos al eliminar contenedores se detecten e informen

### Documentación (Documentation)

* Actualizar las instrucciones para reportar problemas
* Advertir contra el uso de enlaces simbólicos para la carpeta de almacenamiento de Docker
* Reemplazar el ejemplo de Firefox con un ejemplo de IceWeasel
* Reescribir el ejemplo de PostgreSQL usando un Dockerfile y añadir más detalles al mismo
* Mejorar la documentación de OS X

### API remota (Remote API)

- Corregir API de imágenes rota para versiones anteriores a la 1.7
- Usar la codificación correcta para todos los endpoints de la API que devuelven JSON
- Mover el cliente de la API remota a api/
- Encolar llamadas a la API usando la espera de socket genérica

### Tiempo de ejecución (Runtime)

- Corregir el uso de configuraciones personalizadas para puentes y puentes personalizados
- Refactorizar el código de devicemapper para evitar many condiciones de carrera y fallos de montaje/desmontaje -> Refactorizar el código de devicemapper para evitar muchas condiciones de carrera y fallos de montaje/desmontaje
- Eliminar dos pánicos que podían hacer que Docker fallara en algunas situaciones
- No hacer ping al registro desde el cliente CLI
- Habilitar skip_block_zeroing para devicemapper. Esto evita que devicemapper rellene siempre con ceros bloques enteros
- Corregir `--run` en `docker commit`. Esto hace que docker commit almacene `--run` en la configuración de la imagen
- Eliminar el directorio al eliminar el dispositivo devicemapper. Esto limpia los directorios de montaje sobrantes
- Eliminar la capacidad NET_ADMIN para contenedores no privilegiados. Los contenedores no privilegiados no pueden cambiar su configuración de red
- Asegurar que el flujo de `docker cp` esté cerrado correctamente
- Evitar el montaje/desmontaje adicional durante el registro del contenedor. Esto elimina una operación de montaje/desmontaje innecesaria que causaba problemas con devicemapper
- Dejar de permitir tcp:// como una dirección bin tcp predeterminada que se vincula a 127.0.0.1:4243 y eliminar el puerto predeterminado
+ Montar y vincular el PTY como consola del contenedor. Esto permite que tmux y screen se ejecuten en un contenedor
- Limpiar el cierre de archivos. Esto corrige y mejora el manejo de archivos
- Corregir las pruebas del motor en sistemas donde los directorios temporales están enlazados simbólicamente
- Añadir métodos de prueba para save y load
- Evitar desmontar temporalmente el contenedor al reiniciarlo. Esto corrige una carrera para devicemapper durante el reinicio
- Admitir submódulos al construir desde un repositorio de GitHub
- Entrecomillar la ruta del volumen para permitir espacios
- Corregir el comportamiento de ADD de tar remoto. Esto corrige una regresión que causaba que Docker extrajera archivos tar

## 0.8.0 (2014-02-04)

### Características notables desde 0.7.0

* Las imágenes y contenedores se pueden eliminar mucho más rápido
* Construir una imagen desde el código fuente con docker build ahora es mucho más rápido
* El demonio de Docker se inicia y se detiene mucho más rápido
* Se ha reducido la huella de memoria de muchas operaciones comunes, al transmitir archivos en lugar de almacenarlos en búfer en memoria, corrigiendo fugas de memoria y corrigiendo varias asignaciones de memoria subóptimas
* Se corrigieron varias condiciones de carrera, haciendo que Docker sea más estable bajo una carga de concurrencia muy alta. Esto hace que Docker sea más estable y menos propenso a fallar, y reduce la huella de memoria de muchas operaciones comunes
* Todas las operaciones de empaquetado ahora se basan en la implementación estándar de tar del lenguaje Go, que se incluye con el propio Docker. Esto hace que el empaquetado sea más portátil entre distribuciones de host y resuelve varios problemas causados por peculiaridades e incompatibilidades entre diferentes distribuciones de tar
* Docker ahora puede crear, eliminar y modificar mayores cantidades de contenedores e imágenes con elegancia gracias a una liberación más agresiva de recursos del sistema. Por ejemplo, la API del controlador de almacenamiento ahora permite a Docker realizar recuento de referencias en los montajes creados por los controladores
Con los cambios en curso en los subsistemas de red y ejecución de docker, probar estas áreas ha sido un enfoque de la refactorización. Al mover estos subsistemas a paquetes separados, podemos probar, analizar y monitorear la cobertura y calidad de estos paquetes
* Muchos componentes se han separado en subpaquetes más pequeños, cada uno con una suite de pruebas dedicada. As a result, the code is better-tested, more readable and easier to change -> Como resultado, el código está mejor probado, es más legible y fácil de cambiar
 
* La instrucción ADD ahora admite almacenamiento en caché, lo que evita volver a subir innecesariamente el mismo contenido de origen una y otra vez cuando no ha cambiado
* La nueva instrucción ONBUILD añade a tu imagen una instrucción de "disparador" (trigger) para ser ejecutada en un momento posterior, cuando la imagen se use como base para otra construcción
* Docker ahora se distribuye con un controlador de almacenamiento experimental que utiliza el sistema de archivos BTRFS para copia en escritura (copy-on-write)
* Docker está soportado oficialmente en Mac OS X
* El demonio de Docker admite la activación de sockets de systemd

## 0.7.6 (2014-01-14)

### Builder

* Do not follow symlink outside of build context

### Runtime

- Remount bind mounts when ro is specified
* Use https for fetching docker version

### Other

* Inline the test.docker.io fingerprint
* Add ca-certificates to packaging documentation

## 0.7.5 (2014-01-09)

### Builder

* Disable compression for build. More space usage but a much faster upload
- Fix ADD caching for certain paths
- Do not compress archive from git build

### Documentation

- Fix error in GROUP add example
* Make sure the GPG fingerprint is inline in the documentation
* Give more specific advice on setting up signing of commits for DCO

### Runtime

- Fix misspelled container names
- Do not add hostname when networking is disabled
* Return most recent image from the cache by date
- Return all errors from docker wait
* Add Content-Type Header "application/json" to GET /version and /info responses

### Other

* Update DCO to version 1.1
+ Update Makefile to use "docker:GIT_BRANCH" as the generated image name
* Update Travis to check for new 1.1 DCO version

## 0.7.4 (2014-01-07)

### Builder

- Fix ADD caching issue with . prefixed path
- Fix docker build on devicemapper by reverting sparse file tar option
- Fix issue with file caching and prevent wrong cache hit
* Use same error handling while unmarshalling CMD and ENTRYPOINT

### Documentation

* Simplify and streamline Amazon Quickstart
* Install instructions use unprefixed Fedora image
* Update instructions for mtu flag for Docker on GCE
+ Add Ubuntu Saucy to installation
- Fix for wrong version warning on master instead of latest

### Runtime

- Only get the image's rootfs when we need to calculate the image size
- Correctly handle unmapping UDP ports
* Make CopyFileWithTar use a pipe instead of a buffer to save memory on docker build
- Fix login message to say pull instead of push
- Fix "docker load" help by removing "SOURCE" prompt and mentioning STDIN
* Make blank -H option default to the same as no -H was sent
* Extract cgroups utilities to own submodule

### Other

+ Add Travis CI configuration to validate DCO and gofmt requirements
+ Add Developer Certificate of Origin Text
* Upgrade VBox Guest Additions
* Check standalone header when pinging a registry server

## 0.7.3 (2014-01-02)

### Builder

+ Update ADD to use the image cache, based on a hash of the added content
* Add error message for empty Dockerfile

### Documentation

- Fix outdated link to the "Introduction" on www.docker.io
+ Update the docs to get wider when the screen does
- Add information about needing to install LXC when using raw binaries
* Update Fedora documentation to disentangle the docker and docker.io conflict
* Add a note about using the new `-mtu` flag in several GCE zones
+ Add FrugalWare installation instructions
+ Add a more complete example of `docker run`
- Fix API documentation for creating and starting Privileged containers
- Add missing "name" parameter documentation on "/containers/create"
* Add a mention of `lxc-checkconfig` as a way to check for some of the necessary kernel configuration
- Update the 1.8 API documentation with some additions that were added to the docs for 1.7

### Hack

- Add missing libdevmapper dependency to the packagers documentation
* Update minimum Go requirement to a hard line at Go 1.2+
* Many minor improvements to the Vagrantfile
+ Add ability to customize dockerinit search locations when compiling (to be used very sparingly only by packagers of platforms who require a nonstandard location)
+ Add coverprofile generation reporting
- Add `-a` to our Go build flags, removing the need for recompiling the stdlib manually
* Update Dockerfile to be more canonical and have less spurious warnings during build
- Fix some miscellaneous `docker pull` progress bar display issues
* Migrate more miscellaneous packages under the "pkg" folder
* Update TextMate highlighting to automatically be enabled for files named "Dockerfile"
* Reorganize syntax highlighting files under a common "contrib/syntax" directory
* Update install.sh script (https://get.docker.io/) to not fail if busybox fails to download or run at the end of the Ubuntu/Debian installation
* Add support for container names in bash completion

### Packaging

+ Add an official Docker client binary for Darwin (Mac OS X)
* Remove empty "Vendor" string and added "License" on deb package
+ Add a stubbed version of "/etc/default/docker" in the deb package

### Runtime

* Update layer application to extract tars in place, avoiding file churn while handling whiteouts
- Fix permissiveness of mtime comparisons in tar handling (since GNU tar and Go tar do not yet support sub-second mtime precision)
* Reimplement `docker 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`)
+ Update `-H unix://` to work similarly to `-H tcp://` by inserting the default values for missing portions
- Fix more edge cases regarding dockerinit and deleted or replaced docker or dockerinit files
* Update container name validation to include '.'
- Fix use of a symlink or non-absolute path as the argument to `-g` to work as expected
* Update to handle external mounts outside of LXC, fixing many small mounting quirks and making future execution backends and other features simpler
* Update to use proper box-drawing characters everywhere in `docker images -tree`
* Move MTU setting from LXC configuration to directly use netlink
* Add `-S` option to external tar invocation for more efficient spare file handling
+ Add arch/os info to User-Agent string, especially for registry requests
+ Add `-mtu` option to Docker daemon for configuring MTU
- Fix `docker build` to exit with a non-zero exit code on error
+ Add `DOCKER_HOST` environment variable to configure the client `-H` flag without specifying it manually for every invocation

## 0.7.2 (2013-12-16)

### Runtime

+ Validate container names on creation with standard regex
* Increase maximum image depth to 127 from 42
* Continue to move api endpoints to the job api
+ Add -bip flag to allow specification of dynamic bridge IP via CIDR
- Allow bridge creation when ipv6 is not enabled on certain systems
* Set hostname and IP address from within dockerinit
* Drop capabilities from within dockerinit
- Fix volumes on host when symlink is present the image
- Prevent deletion of image if ANY container is depending on it even if the container is not running
* Update docker push to use new progress display
* Use os.Lstat to allow mounting unix sockets when inspecting volumes
- Adjust handling of inactive user login
- Add missing defines in devicemapper for older kernels
- Allow untag operations with no container validation
- Add auth config to docker build

### Documentation

* Add more information about Docker logging
+ Add RHEL documentation
* Add a direct example for changing the CMD that is run in a container
* Update Arch installation documentation
+ Add section on Trusted Builds
+ Add Network documentation page

### Other

+ Add new cover bundle for providing code coverage reporting
* Separate integration tests in bundles
* Make Tianon the hack maintainer
* Update mkimage-debootstrap with more tweaks for keeping images small
* Use https to get the install script
* Remove vendored dotcloud/tar now that Go 1.2 has been released

## 0.7.1 (2013-12-05)

### Documentation

+ Add @SvenDowideit as documentation maintainer
+ Add links example
+ Add documentation regarding ambassador pattern
+ Add Google Cloud Platform docs
+ Add dockerfile best practices
* Update doc for RHEL
* Update doc for registry
* Update Postgres examples
* Update doc for Ubuntu install
* Improve remote api doc

### Runtime

+ Add hostconfig to docker inspect
+ Implement `docker log -f` to stream logs
+ Add env variable to disable kernel version warning
+ Add -format to `docker inspect`
+ Support bind-mount for files
- Fix bridge creation on RHEL
- Fix image size calculation
- Make sure iptables are called even if the bridge already exists
- Fix issue with stderr only attach
- Remove init layer when destroying a container
- Fix same port binding on different interfaces
- `docker build` now returns the correct exit code
- Fix `docker port` to display correct port
- `docker build` now check that the dockerfile exists client side
- `docker attach` now returns the correct exit code
- Remove the name entry when the container does not exist

### Registry

* Improve progress bars, add ETA for downloads
* Simultaneous pulls now waits for the first to finish instead of failing
- Tag only the top-layer image when pushing to registry
- Fix issue with offline image transfer
- Fix issue preventing using ':' in password for registry

### Other

+ Add pprof handler for debug
+ Create a Makefile
* Use stdlib tar that now includes fix
* Improve make.sh test script
* Handle SIGQUIT on the daemon
* Disable verbose during tests
* Upgrade to go1.2 for official build
* Improve unit tests
* The test suite now runs all tests even if one fails
* Refactor C in Go (Devmapper)
- Fix OS X compilation

## 0.7.0 (2013-11-25)

### Notable features since 0.6.0

* Storage drivers: choose from aufs, device-mapper, or vfs.
* Standard Linux support: docker now runs on unmodified Linux kernels and all major distributions.
* Links: compose complex software stacks by connecting containers to each other.
* Container naming: organize your containers by giving them memorable names.
* Advanced port redirects: specify port redirects per interface, or keep sensitive ports private.
* Offline transfer: push and pull images to the filesystem without losing information.
* Quality: numerous bugfixes and small usability improvements. Significant increase in test coverage.

## 0.6.7 (2013-11-21)

### Runtime

* Improve stability, fixes some race conditions
* Skip the volumes mounted when deleting the volumes of container.
* Fix layer size computation: handle hard links correctly
* Use the work Path for docker cp CONTAINER:PATH
* Fix tmp dir never cleanup
* Speedup docker ps
* More informative error message on name collisions
* Fix nameserver regex
* Always return long id's
* Fix container restart race condition
* Keep published ports on docker stop;docker start
* Fix container networking on Fedora
* Correctly express "any address" to iptables
* Fix network setup when reconnecting to ghost container
* Prevent deletion if image is used by a running container
* Lock around read operations in graph

### RemoteAPI

* Return full ID on docker rmi

### Client

+ Add -tree option to images
+ Offline image transfer
* Exit with status 2 on usage error and display usage on stderr
* Do not forward SIGCHLD to container
* Use string timestamp for docker events -since

### Other

* Update to go 1.2rc5
+ Add /etc/default/docker support to upstart

## 0.6.6 (2013-11-06)

### Runtime

* Ensure container name on register
* Fix regression in /etc/hosts
+ Add lock around write operations in graph
* Check if port is valid
* Fix restart runtime error with ghost container networking
+ Add some more colors and animals to increase the pool of generated names
* Fix issues in docker inspect
+ Escape apparmor confinement
+ Set environment variables using a file.
* Prevent docker insert to erase something
+ Prevent DNS server conflicts in CreateBridgeIface
+ Validate bind mounts on the server side
+ Use parent image config in docker build
* Fix regression in /etc/hosts

### Client

+ Add -P flag to publish all exposed ports
+ Add -notrunc and -q flags to docker history
* Fix docker commit, tag and import usage
+ Add stars, trusted builds and library flags in docker search
* Fix docker logs with tty

### RemoteAPI

* Make /events API send headers immediately
* Do not split last column docker top
+ Add size to history

### Other

+ Contrib: Desktop integration. Firefox usecase.
+ Dockerfile: bump to go1.2rc3

## 0.6.5 (2013-10-29)

### Runtime

+ Containers can now be named
+ Containers can now be linked together for service discovery
+ 'run -a', 'start -a' and 'attach' can forward signals to the container for better integration with process supervisors
+ Automatically start crashed containers after a reboot
+ Expose IP, port, and proto as separate environment vars for container links
* Allow ports to be published to specific ips
* Prohibit inter-container communication by default
- Ignore ErrClosedPipe for stdin in Container.Attach
- Remove unused field kernelVersion
* Fix issue when mounting subdirectories of /mnt in container
- Fix untag during removal of images
* Check return value of syscall.Chdir when changing working directory inside dockerinit

### Client

- Only pass stdin to hijack when needed to avoid closed pipe errors
* Use less reflection in command-line method invocation
- Monitor the tty size after starting the container, not prior
- Remove useless os.Exit() calls after log.Fatal

### Hack

+ Add initial init scripts library and a safer Ubuntu packaging script that works for Debian
* Add -p option to invoke debootstrap with http_proxy
- Update install.sh with $sh_c to get sudo/su for modprobe
* Update all the mkimage scripts to use --numeric-owner as a tar argument
* Update hack/release.sh process to automatically invoke hack/make.sh and bail on build and test issues

### Other

* Documentation: Fix the flags for nc in example
* Testing: Remove warnings and prevent mount issues
- Testing: Change logic for tty resize to avoid warning in tests
- Builder: Fix race condition in docker build with verbose output
- Registry: Fix content-type for PushImageJSONIndex method
* Contrib: Improve helper tools to generate debian and Arch linux server images

## 0.6.4 (2013-10-16)

### Runtime

- Add cleanup of container when Start() fails
* Add better comments to utils/stdcopy.go
* Add utils.Errorf for error logging
+ Add -rm to docker run for removing a container on exit
- Remove error messages which are not actually errors
- Fix `docker rm` with volumes
- Fix some error cases where an HTTP body might not be closed
- Fix panic with wrong dockercfg file
- Fix the attach behavior with -i
* Record termination time in state.
- Use empty string so TempDir uses the OS's temp dir automatically
- Make sure to close the network allocators
+ Autorestart containers by default
* Bump vendor kr/pty to commit 3b1f6487b `(syscall.O_NOCTTY)`
* lxc: Allow set_file_cap capability in container
- Move run -rm to the cli only
* Split stdout stderr
* Always create a new session for the container

### Testing

- Add aggregated docker-ci email report
- Add cleanup to remove leftover containers
* Add nightly release to docker-ci
* Add more tests around auth.ResolveAuthConfig
- Remove a few errors in tests
- Catch errClosing error when TCP and UDP proxies are terminated
* Only run certain tests with TESTFLAGS='-run TestName' make.sh
* Prevent docker-ci to test closing PRs
* Replace panic by log.Fatal in tests
- Increase TestRunDetach timeout

### Documentation

* Add initial draft of the Docker infrastructure doc
* Add devenvironment link to CONTRIBUTING.md
* Add `apt-get install curl` to Ubuntu docs
* Add explanation for export restrictions
* Add .dockercfg doc
* Remove Gentoo install notes about #1422 workaround
* Fix help text for -v option
* Fix Ping endpoint documentation
- Fix parameter names in docs for ADD command
- Fix ironic typo in changelog
* Various command fixes in postgres example
* Document how to edit and release docs
- Minor updates to `postgresql_service.rst`
* Clarify LGTM process to contributors
- Corrected error in the package name
* Document what `vagrant up` is actually doing
+ improve doc search results
* Cleanup whitespace in API 1.5 docs
* use angle brackets in MAINTAINER example email
* Update archlinux.rst
+ Changes to a new style for the docs. Includes version switcher.
* Formatting, add information about multiline json
* Improve registry and index REST API documentation
- Replace deprecated upgrading reference to docker-latest.tgz, which hasn't been updated since 0.5.3
* Update Gentoo installation documentation now that we're in the portage tree proper
* Cleanup and reorganize docs and tooling for contributors and maintainers
- Minor spelling correction of protocoll -> protocol

### Contrib

* Add vim syntax highlighting for Dockerfiles from @honza
* Add mkimage-arch.sh
* Reorganize contributed completion scripts to add zsh completion

### Hack

* Add vagrant user to the docker group
* Add proper bash completion for "docker push"
* Add xz utils as a runtime dep
* Add cleanup/refactor portion of #2010 for hack and Dockerfile updates
+ Add contrib/mkimage-centos.sh back (from #1621), and associated documentation link
* Add several of the small make.sh fixes from #1920, and make the output more consistent and contributor-friendly
+ Add @tianon to hack/MAINTAINERS
* Improve network performance for VirtualBox
* Revamp install.sh to be usable by more people, and to use official install methods whenever possible (apt repo, portage tree, etc.)
- Fix contrib/mkimage-debian.sh apt caching prevention
+ Add Dockerfile.tmLanguage to contrib
* Configured FPM to make /etc/init/docker.conf a config file
* Enable SSH Agent forwarding in Vagrant VM
* Several small tweaks/fixes for contrib/mkimage-debian.sh

### Other

- Builder: Abort build if mergeConfig returns an error and fix duplicate error message
- Packaging: Remove deprecated packaging directory
- Registry: Use correct auth config when logging in.
- Registry: Fix the error message so it is the same as the regex

## 0.6.3 (2013-09-23)

### Packaging

* Add 'docker' group on install for ubuntu package
* Update tar vendor dependency
* Download apt key over HTTPS

### Runtime

- Only copy and change permissions on non-bindmount volumes
* Allow multiple volumes-from
- Fix HTTP imports from STDIN

### Documentation

* Update section on extracting the docker binary after build
* Update development environment docs for new build process
* Remove 'base' image from documentation

### Other

- Client: Fix detach issue
- Registry: Update regular expression to match index

## 0.6.2 (2013-09-17)

### Runtime

+ Add domainname support
+ Implement image filtering with path.Match
* Remove unnecessary warnings
* Remove os/user dependency
* Only mount the hostname file when the config exists
* Handle signals within the `docker login` command
- UID and GID are now also applied to volumes
- `docker start` set error code upon error
- `docker run` set the same error code as the process started

### Builder

+ Add -rm option in order to remove intermediate containers
* Allow multiline for the RUN instruction

### Registry

* Implement login with private registry
- Fix push issues

### Other

+ Hack: Vendor all dependencies
* Remote API: Bump to v1.5
* Packaging: Break down hack/make.sh into small scripts, one per 'bundle': test, binary, ubuntu etc.
* Documentation: General improvements

## 0.6.1 (2013-08-23)

### Registry

* Pass "meta" headers in API calls to the registry

### Packaging

- Use correct upstart script with new build tool
- Use libffi-dev, don't build it from sources
- Remove duplicate mercurial install command

## 0.6.0 (2013-08-22)

### Runtime

+ Add lxc-conf flag to allow custom lxc options
+ Add an option to set the working directory
* Add Image name to LogEvent tests
+ Add -privileged flag and relevant tests, docs, and examples
* Add websocket support to /container/<name>/attach/ws
* Add warning when net.ipv4.ip_forwarding = 0
* Add hostname to environment
* Add last stable version in `docker version`
- Fix race conditions in parallel pull
- Fix Graph ByParent() to generate list of child images per parent image.
- Fix typo: fmt.Sprint -> fmt.Sprintf
- Fix small \n error un docker build
* Fix to "Inject dockerinit at /.dockerinit"
* Fix #910. print user name to docker info output
* Use Go 1.1.2 for dockerbuilder
* Use ranged for loop on channels
- Use utils.ParseRepositoryTag instead of strings.Split(name, ":") in server.ImageDelete
- Improve CMD, ENTRYPOINT, and attach docs.
- Improve connect message with socket error
- Load authConfig only when needed and fix useless WARNING
- Show tag used when image is missing
* Apply volumes-from before creating volumes
- Make docker run handle SIGINT/SIGTERM
- Prevent crash when .dockercfg not readable
- Install script should be fetched over https, not http.
* API, issue 1471: Use groups for socket permissions
- Correctly detect IPv4 forwarding
* Mount /dev/shm as a tmpfs
- Switch from http to https for get.docker.io
* Let userland proxy handle container-bound traffic
* Update the Docker CLI to specify a value for the "Host" header.
- Change network range to avoid conflict with EC2 DNS
- Reduce connect and read timeout when pinging the registry
* Parallel pull
- Handle ip route showing mask-less IP addresses
* Allow ENTRYPOINT without CMD
- Always consider localhost as a domain name when parsing the FQN repos name
* Refactor checksum

### Documentation

* Add MongoDB image example
* Add instructions for creating and using the docker group
* Add sudo to examples and installation to documentation
* Add ufw doc
* Add a reference to ps -a
* Add information about Docker's high level tools over LXC.
* Fix typo in docs for docker run -dns
* Fix a typo in the ubuntu installation guide
* Fix to docs regarding adding docker groups
* Update default -H docs
* Update readme with dependencies for building
* Update amazon.rst to explain that Vagrant is not necessary for running Docker on ec2
* PostgreSQL service example in documentation
* Suggest installing linux-headers by default.
* Change the twitter handle
* Clarify Amazon EC2 installation
* 'Base' image is deprecated and should no longer be referenced in the docs.
* Move note about officially supported kernel
- Solved the logo being squished in Safari

### Builder

+ Add USER instruction do Dockerfile
+ Add workdir support for the Buildfile
* Add no cache for docker build
- Fix docker build and docker events output
- Only count known instructions as build steps
- Make sure ENV instruction within build perform a commit each time
- Forbid certain paths within docker build ADD
- Repository name (and optionally a tag) in build usage
- Make sure ADD will create everything in 0755

### Remote API

* Sort Images by most recent creation date.
* Reworking opaque requests in registry module
* Add image name in /events
* Use mime pkg to parse Content-Type
* 650 http utils and user agent field

### Hack

+ Bash Completion: Limit commands to containers of a relevant state
* Add docker dependencies coverage testing into docker-ci

### Packaging

+ Docker-brew 0.5.2 support and memory footprint reduction
* Add new docker dependencies into docker-ci
- Revert "docker.upstart: avoid spawning a `sh` process"
+ Docker-brew and Docker standard library
+ Release docker with docker
* Fix the upstart script generated by get.docker.io
* Enabled the docs to generate manpages.
* Revert Bind daemon to 0.0.0.0 in Vagrant.

### Register

* Improve auth push
* Registry unit tests + mock registry

### Tests

* Improve TestKillDifferentUser to prevent timeout on buildbot
- Fix typo in TestBindMounts (runContainer called without image)
* Improve TestGetContainersTop so it does not rely on sleep
* Relax the lo interface test to allow iface index != 1
* Add registry functional test to docker-ci
* Add some tests in server and utils

### Other

* Contrib: bash completion script
* Client: Add docker cp command and copy api endpoint to copy container files/folders to the host
* Don't read from stdout when only attached to stdin

## 0.5.3 (2013-08-13)

### Runtime

* Use docker group for socket permissions
- Spawn shell within upstart script
- Handle ip route showing mask-less IP addresses
- Add hostname to environment

### Builder

- Make sure ENV instruction within build perform a commit each time

## 0.5.2 (2013-08-08)

* Builder: Forbid certain paths within docker build ADD
- Runtime: Change network range to avoid conflict with EC2 DNS
* API: Change daemon to listen on unix socket by default

## 0.5.1 (2013-07-30)

### Runtime

+ Add `ps` args to `docker top`
+ Add support for container ID files (pidfile like)
+ Add container=lxc in default env
+ Support networkless containers with `docker run -n` and `docker -d -b=none`
* Stdout/stderr logs are now stored in the same file as JSON
* Allocate a /16 IP range by default, with fallback to /24. Try 12 ranges instead of 3.
* Change .dockercfg format to json and support multiple auth remote
- Do not override volumes from config
- Fix issue with EXPOSE override

### API

+ Docker client now sets useragent (RFC 2616)
+ Add /events endpoint

### Builder

+ ADD command now understands URLs
+ CmdAdd and CmdEnv now respect Dockerfile-set ENV variables
- Create directories with 755 instead of 700 within ADD instruction

### Hack

* Simplify unit tests with helpers
* Improve docker.upstart event
* Add coverage testing into docker-ci

## 0.5.0 (2013-07-17)

### Runtime

+ List all processes running inside a container with 'docker top'
+ Host directories can be mounted as volumes with 'docker run -v'
+ Containers can expose public UDP ports (eg, '-p 123/udp')
+ Optionally specify an exact public port (eg. '-p 80:4500')
* 'docker login' supports additional options
- Don't save a container's hostname when committing an image.

### Registry

+ New image naming scheme inspired by Go packaging convention allows arbitrary combinations of registries
- Fix issues when uploading images to a private registry

### Builder

+ ENTRYPOINT instruction sets a default binary entry point to a container
+ VOLUME instruction marks a part of the container as persistent data
* 'docker build' displays the full output of a build by default

## 0.4.8 (2013-07-01)

+ Builder: New build operation ENTRYPOINT adds an executable entry point to the container.  - Runtime: Fix a bug which caused 'docker run -d' to no longer print the container ID.
- Tests: Fix issues in the test suite

## 0.4.7 (2013-06-28)

### Remote API

* The progress bar updates faster when downloading and uploading large files
- Fix a bug in the optional unix socket transport

### Runtime

* Improve detection of kernel version
+ Host directories can be mounted as volumes with 'docker run -b'
- fix an issue when only attaching to stdin
* Use 'tar --numeric-owner' to avoid uid mismatch across multiple hosts

### Hack

* Improve test suite and dev environment
* Remove dependency on unit tests on 'os/user'

### Other

* Registry: easier push/pull to a custom registry
+ Documentation: add terminology section

## 0.4.6 (2013-06-22)

- Runtime: fix a bug which caused creation of empty images (and volumes) to crash.

## 0.4.5 (2013-06-21)

+ Builder: 'docker build git://URL' fetches and builds a remote git repository
* Runtime: 'docker ps -s' optionally prints container size
* Tests: improved and simplified
- Runtime: fix a regression introduced in 0.4.3 which caused the logs command to fail.
- Builder: fix a regression when using ADD with single regular file.

## 0.4.4 (2013-06-19)

- Builder: fix a regression introduced in 0.4.3 which caused builds to fail on new clients.

## 0.4.3 (2013-06-19)

### Builder

+ ADD of a local file will detect tar archives and unpack them
* ADD improvements: use tar for copy + automatically unpack local archives
* ADD uses tar/untar for copies instead of calling 'cp -ar'
* Fix the behavior of ADD to be (mostly) reverse-compatible, predictable and well-documented.
- Fix a bug which caused builds to fail if ADD was the first command
* Nicer output for 'docker build'

### Runtime

* Remove bsdtar dependency
* Add unix socket and multiple -H support
* Prevent rm of running containers
* Usar cookiejar de go1.1
- Corregir el problema al desasociarse de un contenedor TTY en ejecución
- Prohibir push/pull en paralelo para una única imagen/repositorio. Corrige `#311`
- Corregir la condición de carrera dentro del comando Run al asociarse (attaching).

### Cliente (Client)

* Tamaños de barra de progreso legibles por humanos (HumanReadable) en pull
* Corregir la salida del commit de git de docker version

### API

* Enviar todas las etiquetas en la llamada a la API History
* Añadir búsqueda de etiquetas al comando history. Corrige #882

### Documentación (Documentation)

- Corregir comando faltante en el ejemplo del bouncer de irc

## 0.4.2 (2013-06-17)

- Empaquetado: Se aumentó la versión para evitar un error de Ubuntu

## 0.4.1 (2013-06-17)

### API remota (Remote Api)

+ Añadir bandera para permitir solicitudes de dominios cruzados (cross-domain)
+ Añadir tamaños de imágenes y contenedores en docker ps y docker images

### Tiempo de ejecución (Runtime)

+ Configurar la configuración de DNS para todo el host con 'docker -d -dns'
+ Detectar una configuración de DNS defectuosa y reemplazarla con un valor predeterminado público
+ Permitir docker run <nombre>:<id>
+ Ahora puedes especificar el puerto público (ej: -p 80:4500)
* Mejorar la eliminación de imágenes para recolectar elementos padre no referenciados

### Cliente (Client)

* Permitir múltiples parámetros en inspect
* Imprimir el ID del contenedor antes del secuestro (hijack) en `docker run`

### Registro (Registry)

* Añadir verificación de expresión regular en el nombre del repositorio
* Mover la autenticación al cliente
- Eliminar la verificación de inicio de sesión en pull

### Otros (Other)

* Vagrantfile: Añadir el puerto de la API rest al reenvío de puertos (port_forward) de vagrantfile
* Actualizar a Go 1.1
- Constructor: no ignorar la última línea en Dockerfile cuando no termina con \n

## 0.4.0 (2013-06-03)

### Constructor (Builder)

+ Presentación del Constructor (Builder)
+ 'docker build' construye un contenedor, capa por capa, a partir de un repositorio de origen que contiene un Dockerfile

### API remota (Remote API)

+ Presentación de la API remota
+ Controlar Docker mediante programación usando una API simple de HTTP/json

### Tiempo de ejecución (Runtime)

* Varias mejoras de confiabilidad y usabilidad

## 0.3.4 (2013-05-30)

### Constructor (Builder)

+ 'docker build' construye un contenedor, capa por capa, a partir de un repositorio de origen que contiene un Dockerfile
+ 'docker build -t FOO' aplica la etiqueta FOO al contenedor recién construido.

### Tiempo de ejecución (Runtime)

+ Las TTY interactivas manejan correctamente el cambio de tamaño de la ventana
* Corregir cómo se fusiona la configuración entre capas

### API remota (Remote API)

+ Dividir stdout y stderr en 'docker run'
+ Opcionalmente escuchar en una IP y puerto diferentes (usar bajo tu propio riesgo)

### Documentación (Documentation)

* Mejorar las instrucciones de instalación.

## 0.3.3 (2013-05-23)

- Registro: Corregir regresión de push
- Varias correcciones de errores

## 0.3.2 (2013-05-09)

### Registro (Registry)

* Mejorar el proceso de suma de comprobación (checksum)
* Usar el tamaño para tener una buena barra de progreso al realizar push
* Usar el archivo real si existe para acelerar el push
- Corregir error 400 en push

### Tiempo de ejecución (Runtime)

* Almacenar el archivo real al confirmar (commit)

## 0.3.1 (2013-05-08)

### Constructor (Builder)

+ Implementar la capacidad de ejecución automática dentro del constructor de docker
+ Añadir almacenamiento en caché al constructor de docker
+ Añadir soporte para el constructor de docker con API nativa como comando de nivel superior
+ Implementar ENV dentro del constructor de docker
- Comprobar la existencia del comando antes de crear y añadir pruebas unitarias para el caso
* Usar cualquier espacio en blanco en lugar de tabuladores

### Tiempo de ejecución (Runtime)

+ Añadir la versión de go a las informaciones de depuración
* Versión del kernel - no mostrar el guion si flavor está vacío

### Registro (Registry)

+ Añadir el comando de nivel superior docker search para buscar en un repositorio
- Corregir la descarga (pull) para imágenes oficiales con etiqueta específica
- Corregir problema al iniciar sesión con un usuario diferente e intentar realizar push
* Mejorar la suma de comprobación: cálculo asíncrono

### Imágenes (Images)

+ Exportar gráfico de imágenes a dot (graphviz)
- Corregir la función ByParent

### Documentación (Documentation)

+ Nueva introducción y descripción general de alto nivel
+ Añadir la documentación para el constructor de docker
- Corrección de CSS para la documentación de docker para que los documentos de la API REST se vean mejor.
- Corregir error en el encabezado de la página de ejemplo de CouchDB
- Corregir el formato de README
* Actualizar el sitio web www.docker.io.

### Otros (Other)

+ Sitio web: nueva descripción general de alto nivel
- Makefile: Intercambiar "go get" por "go get -d", especialmente para compilar en go1.1rc
* Empaquetado: empaquetado de ubuntu; problema #510: Usar el paquete golang-stable PPA para construir docker

## 0.3.0 (2013-05-06)

### Tiempo de ejecución (Runtime)

- Corregir la verificación de existencia del comando
- strings.Split puede devolver una cadena vacía si no hay coincidencia
- Corregir un fallo de índice fuera de rango si la memoria cgroup no está configurada

### Documentación (Documentation)

* Varias mejoras
+ Nuevo ejemplo: compartir datos entre 2 bases de datos couchdb

### Otros (Other)

* Vagrant: Usar solo una línea deb en /etc/apt
+ Registro: Implementar el nuevo registro

## 0.2.2 (2013-05-03)

+ Soporte para volúmenes de datos ('docker run -v=RUTA')
+ Compartir volúmenes de datos entre contenedores ('docker run -volumes-from')
+ Mejorar la documentación
* Actualizar a Go 1.0.3
* Varias actualizaciones al entorno de desarrollo para colaboradores

## 0.2.1 (2013-05-01)

+ 'docker commit -run' empaqueta una capa con opciones de tiempo de ejecución predeterminadas: comando, puertos, etc.
* Mejorar el proceso de instalación en Vagrant
+ Nueva operación de Dockerfile: "maintainer"
+ Nueva operación de Dockerfile: "expose"
+ Nueva operación de Dockerfile: "cmd"
+ Script de contribución para construir una capa base de Debian
+ 'docker -d -r': reiniciar contenedores bloqueados al iniciar el demonio
* Tiempo de ejecución: mejorar la cobertura de las pruebas

## 0.2.0 (2013-04-23)

- Tiempo de ejecución: los contenedores fantasma se pueden matar y esperar por ellos
* Documentación: actualizar las instrucciones de instalación
- Empaquetado: corregir Vagrantfile
- Desarrollo: automatizar la liberación de binarios y paquetes de ubuntu
+ Añadir un registro de cambios (changelog)
- Varias correcciones de errores

## 0.1.8 (2013-04-22)

- Detectar dinámicamente las capacidades de cgroup
- Emitir advertencia de estabilidad en kernels <3.8
- 'docker push' almacena en búfer en el disco en lugar de en la memoria
- Corregir 'docker diff' para archivos eliminados
- Corregir 'docker stop' para contenedores fantasma
- Corregir el manejo de pidfile
- Varias correcciones de errores y mejoras de estabilidad

## 0.1.7 (2013-04-18)

- Los puertos del contenedor están disponibles en localhost
- 'docker ps' shows los puertos TCP asignados -> 'docker ps' muestra los puertos TCP asignados
- Los colaboradores pueden ejecutar 'make hack' para iniciar una máquina virtual de integración continua
- Agilizar el empaquetado y la carga de ubuntu
- Varias correcciones de errores y mejoras de estabilidad

## 0.1.6 (2013-04-17)

- Registrar el autor de una imagen con 'docker commit -author'

## 0.1.5 (2013-04-17)

- Desactivar el modo independiente (standalone)
- Usar un resolver de DNS personalizado con 'docker -d -dns'
- Detectar contenedores fantasma
- Mejorar el diagnóstico de capacidades del sistema faltantes
- Permitir la desactivación de los límites de memoria en tiempo de compilación
- Añadir empaquetado debian
- Documentación: instalación en Arch Linux
- Documentación: ejecución de Redis en docker
- Corregir compatibilidad con lxc 0.9
- Cargar automáticamente el módulo aufs
- Varias correcciones de errores y mejoras de estabilidad

## 0.1.4 (2013-04-09)

- Soporte completo para emulación de TTY
- Desasociarse de una sesión TTY con la secuencia de escape `C-p C-q`
- Varias correcciones de errores y mejoras de estabilidad
- Pequeñas mejoras en la interfaz de usuario
- Crear automáticamente nuestra propia interfaz de puente 'docker0'

## 0.1.3 (2013-04-04)

- Elegir el puerto frontend TCP con '-p :PUERTO'
- El formato de la capa tiene versión
- Importantes mejoras de confiabilidad para el administrador de procesos
- Varias correcciones de errores y mejoras de estabilidad

## 0.1.2 (2013-04-03)

- Establecer el nombre de host del contenedor con 'docker run -h'
- Asociación selectiva en la ejecución con 'docker run -a [stdin[,stdout[,stderr]]]'
- Varias correcciones de errores y mejoras de estabilidad
- Pulido de la interfaz de usuario
- Barra de progreso en push/pull
- Usar compresión XZ por defecto
- Hacer que el asignador de IP sea perezoso (lazy)

## 0.1.1 (2013-03-31)

- Mostrar ID cortos para mayor comodidad
- Estabilizar la gestión de procesos
- Las capas pueden incluir un mensaje de confirmación (commit message)
- 'docker attach' simplificado
- Corregir soporte para reasociación
- Varias correcciones de errores y mejoras de estabilidad
- Descarga automática en la ejecución
- Inicio de sesión automático en push
- Documentación mejorada

## 0.1.0 (2013-03-23)

Lanzamiento público inicial

- Implementar el registro para realizar push/pull de imágenes
- Asignación de puertos TCP
- Corregir termcaps en Linux
- Añadir documentación
- Añadir soporte de Vagrant con Vagrantfile
- Añadir pruebas unitarias
- Añadir repositorios/etiquetas para facilitar la gestión de imágenes
- Mejorar la implementación de capas

