Fixed a missing link and a few small formatting issues. Also deleted 1.3 notes as originally intended.
Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
| ... | ... |
@@ -13,7 +13,7 @@ desired version from the drop-down list at the top right of this page. |
| 13 | 13 |
This release provides a number of new features, but is mainly focused on bug |
| 14 | 14 |
fixes and improvements to platform stability and security. |
| 15 | 15 |
|
| 16 |
-For a complete list of patches, fixes, and other improvements, see <todo: link> |
|
| 16 |
+For a complete list of patches, fixes, and other improvements, see the [merge PR on GitHub](https://github.com/docker/docker/pull/9345). |
|
| 17 | 17 |
|
| 18 | 18 |
*New Features* |
| 19 | 19 |
|
| ... | ... |
@@ -57,371 +57,20 @@ were not sufficiently validated. This created a vulnerability to path traversal |
| 57 | 57 |
attacks wherein malicious images or repository spoofing could lead to graph |
| 58 | 58 |
corruption and manipulation. |
| 59 | 59 |
|
| 60 |
-Note that the above CVE's are also in Docker 1.3.3, which was released |
|
| 61 |
-concurrently with 1.4.0. |
|
| 62 |
- |
|
| 60 |
+> **Note:** the above CVEs are also patched in Docker 1.3.3, which was released |
|
| 61 |
+> concurrently with 1.4.0. |
|
| 62 |
+ |
|
| 63 | 63 |
*Runtime fixes* |
| 64 |
- |
|
| 65 |
-* Fixed an issue that caused image archives to be read slowly. |
|
| 66 |
- |
|
| 67 |
-*Client fixes* |
|
| 68 |
- |
|
| 69 |
-* Fixed a regression related to STDIN redirection. |
|
| 70 |
-* Fixed a regression involving `docker cp` when the current directory is the |
|
| 71 |
-destination. |
|
| 72 | 64 |
|
| 73 |
-> **Note** |
|
| 74 |
-> Development history prior to version 1.0 can be found by |
|
| 75 |
-> searching in [GitHub](https://github.com/docker/docker). |
|
| 65 |
+* Fixed an issue that caused image archives to be read slowly. |
|
| 76 | 66 |
|
| 77 |
-##Version 1.3.3 |
|
| 78 |
-(2014-12-11) |
|
| 79 |
- |
|
| 80 |
-This release fixes several security issues. In order to encourage immediate |
|
| 81 |
-upgrading, this release also patches some critical bugs. All users are highly |
|
| 82 |
-encouraged to upgrade as soon as possible. |
|
| 83 |
- |
|
| 84 |
-*Security fixes* |
|
| 85 |
- |
|
| 86 |
-Patches and changes were made to address the following vulnerabilities: |
|
| 87 |
- |
|
| 88 |
-* CVE-2014-9356: Path traversal during processing of absolute symlinks. |
|
| 89 |
-Absolute symlinks were not adequately checked for traversal which created a |
|
| 90 |
-vulnerability via image extraction and/or volume mounts. |
|
| 91 |
-* CVE-2014-9357: Escalation of privileges during decompression of LZMA (.xz) |
|
| 92 |
-archives. Docker 1.3.2 added `chroot` for archive extraction. This created a |
|
| 93 |
-vulnerability that could allow malicious images or builds to write files to the |
|
| 94 |
-host system and escape containerization, leading to privilege escalation. |
|
| 95 |
-* CVE-2014-9358: Path traversal and spoofing opportunities via image |
|
| 96 |
-identifiers. Image IDs passed either via `docker load` or registry communications |
|
| 97 |
-were not sufficiently validated. This created a vulnerability to path traversal |
|
| 98 |
-attacks wherein malicious images or repository spoofing could lead to graph |
|
| 99 |
-corruption and manipulation. |
|
| 100 |
- |
|
| 101 |
-*Runtime fixes* |
|
| 102 |
- |
|
| 103 |
-* Fixed an issue that cause image archives to be read slowly. |
|
| 104 |
- |
|
| 105 | 67 |
*Client fixes* |
| 106 | 68 |
|
| 107 | 69 |
* Fixed a regression related to STDIN redirection. |
| 108 | 70 |
* Fixed a regression involving `docker cp` when the current directory is the |
| 109 | 71 |
destination. |
| 110 | 72 |
|
| 111 |
-##Version 1.3.2 |
|
| 112 |
-(2014-11-24) |
|
| 113 |
- |
|
| 114 |
-This release fixes some bugs and addresses some security issues. We have also |
|
| 115 |
-made improvements to aspects of `docker run`. |
|
| 116 |
- |
|
| 117 |
-*Security fixes* |
|
| 118 |
- |
|
| 119 |
-Patches and changes were made to address CVE-2014-6407 and CVE-2014-6408. |
|
| 120 |
-Specifically, changes were made in order to: |
|
| 121 |
- |
|
| 122 |
-* Prevent host privilege escalation from an image extraction vulnerability (CVE-2014-6407). |
|
| 123 |
- |
|
| 124 |
-* Prevent container escalation from malicious security options applied to images (CVE-2014-6408). |
|
| 125 |
- |
|
| 126 |
-*Daemon fixes* |
|
| 127 |
- |
|
| 128 |
-The `--insecure-registry` flag of the `docker run` command has undergone |
|
| 129 |
-several refinements and additions. For details, please see the |
|
| 130 |
-[command-line reference](http://docs.docker.com/reference/commandline/cli/#run). |
|
| 131 |
- |
|
| 132 |
-* You can now specify a sub-net in order to set a range of registries which the Docker daemon will consider insecure. |
|
| 133 |
- |
|
| 134 |
-* By default, Docker now defines `localhost` as an insecure registry. |
|
| 135 |
- |
|
| 136 |
-* Registries can now be referenced using the Classless Inter-Domain Routing (CIDR) format. |
|
| 137 |
- |
|
| 138 |
-* When mirroring is enabled, the experimental registry v2 API is skipped. |
|
| 139 |
- |
|
| 140 |
-##Version 1.3.1 |
|
| 141 |
-(2014-10-28) |
|
| 142 |
- |
|
| 143 |
-This release fixes some bugs and addresses some security issues. |
|
| 144 |
- |
|
| 145 |
-*Security fixes* |
|
| 146 |
- |
|
| 147 |
-Patches and changes were made to address [CVE-2014-5277 and CVE-2014-3566](https://groups.google.com/forum/#!topic/docker-user/oYm0i3xShJU). |
|
| 148 |
-Specifically, changes were made to: |
|
| 149 |
- |
|
| 150 |
-* Prevent fallback to SSL protocols < TLS 1.0 for client, daemon and registry |
|
| 151 |
-* Secure HTTPS connection to registries with certificate verification and without HTTP fallback unless [`--insecure-registry`](/reference/commandline/cli/#run) is specified. |
|
| 152 |
- |
|
| 153 |
-*Runtime fixes* |
|
| 154 |
- |
|
| 155 |
-* Fixed issue where volumes would not be shared. |
|
| 156 |
- |
|
| 157 |
-*Client fixes* |
|
| 158 |
- |
|
| 159 |
-* Fixed issue with `--iptables=false` not automatically setting |
|
| 160 |
-`--ip-masq=false`. |
|
| 161 |
-* Fixed docker run output to non-TTY stdout. |
|
| 162 |
- |
|
| 163 |
-*Builder fixes* |
|
| 164 |
- |
|
| 165 |
-* Fixed escaping `$` for environment variables. |
|
| 166 |
-* Fixed issue with lowercase `onbuild` instruction in a `Dockerfile`. |
|
| 167 |
-* Restricted environment variable expansion to `ENV`, `ADD`, `COPY`, `WORKDIR`, |
|
| 168 |
-`EXPOSE`, `VOLUME`, and `USER` |
|
| 169 |
- |
|
| 170 |
-##Version 1.3.0 |
|
| 171 |
- |
|
| 172 |
-This version fixes a number of bugs and issues and adds new functions and other |
|
| 173 |
-improvements. The [GitHub 1.3milestone](https://github.com/docker/docker/issues?q=milestone%3A1.3.0+) has |
|
| 174 |
-more detailed information. Major additions and changes include: |
|
| 175 |
- |
|
| 176 |
-###New Features |
|
| 177 |
- |
|
| 178 |
-*New command: `docker exec`* |
|
| 179 |
- |
|
| 180 |
-The new `docker exec` command lets you run a process in an existing, active |
|
| 181 |
-container. The command has APIs for both the daemon and the client. With `docker |
|
| 182 |
-exec`, you'll be able to do things like add or remove devices from running |
|
| 183 |
-containers, debug running containers, and run commands that are not part of the |
|
| 184 |
-container's static specification. Details in the [command line reference](/reference/commandline/cli/#exec). |
|
| 185 |
- |
|
| 186 |
-*New command: `docker create`* |
|
| 187 |
- |
|
| 188 |
-Traditionally, the `docker run` command has been used to both create a container |
|
| 189 |
-and spawn a process to run it. The new `docker create` command breaks this |
|
| 190 |
-apart, letting you set up a container without actually starting it. This |
|
| 191 |
-provides more control over management of the container lifecycle, giving you the |
|
| 192 |
-ability to configure things like volumes or port mappings before the container |
|
| 193 |
-is started. For example, in a rapid-response scaling situation, you could use |
|
| 194 |
-`create` to prepare and stage ten containers in anticipation of heavy loads. |
|
| 195 |
-Details in the [command line reference](/reference/commandline/cli/#create). |
|
| 196 |
- |
|
| 197 |
-*Tech preview of new provenance features* |
|
| 198 |
- |
|
| 199 |
-This release offers a sneak peek at new image signing capabilities that are |
|
| 200 |
-currently under development. Soon, these capabilities will allow any image |
|
| 201 |
-author to sign their images to certify they have not been tampered with. For |
|
| 202 |
-this release, Official images are now signed by Docker, Inc. Not only does this |
|
| 203 |
-demonstrate the new functionality, we hope it will improve your confidence in |
|
| 204 |
-the security of Official images. Look for the blue ribbons denoting signed |
|
| 205 |
-images on the [Docker Hub](https://hub.docker.com/). The Docker Engine has been |
|
| 206 |
-updated to automatically verify that a given Official Repo has a current, valid |
|
| 207 |
-signature. When pulling a signed image, you'll see a message stating `the image |
|
| 208 |
-you are pulling has been verified`. If no valid signature is detected, Docker |
|
| 209 |
-Engine will fall back to pulling a regular, unsigned image. |
|
| 210 |
- |
|
| 211 |
-###Other improvements & changes* |
|
| 212 |
- |
|
| 213 |
-* We've added a new security options flag to the `docker run` command, |
|
| 214 |
-`--security-opt`, that lets you set SELinux and AppArmor labels and profiles. |
|
| 215 |
-This means you'll no longer have to use `docker run --privileged` on kernels |
|
| 216 |
-that support SE Linux or AppArmor. For more information, see the [command line |
|
| 217 |
-reference](/reference/commandline/cli/#run). |
|
| 218 |
- |
|
| 219 |
-* A new flag, `--add-host`, has been added to `docker run` that lets you add |
|
| 220 |
-lines to `/etc/hosts`. This allows you to specify different name resolution for |
|
| 221 |
-the container than it would get via DNS. For more information, see the [command |
|
| 222 |
-line reference](/reference/commandline/cli/#run). |
|
| 223 |
- |
|
| 224 |
-* You can now set a `DOCKER_TLS_VERIFY` environment variable to secure |
|
| 225 |
-connections by default (rather than having to pass the `--tlsverify` flag on |
|
| 226 |
-every call). For more information, see the [https guide](/articles/https). |
|
| 227 |
- |
|
| 228 |
-* Three security issues have been addressed in this release: [CVE-2014-5280, |
|
| 229 |
-CVE-2014-5270, and |
|
| 230 |
-CVE-2014-5282](https://groups.google.com/forum/#!msg/docker-announce/aQoVmQlcE0A/smPuBNYf8VwJ). |
|
| 231 |
- |
|
| 232 |
-##Version 1.2.0 |
|
| 233 |
- |
|
| 234 |
-This version fixes a number of bugs and issues and adds new functions and other |
|
| 235 |
-improvements. These include: |
|
| 236 |
- |
|
| 237 |
-###New Features |
|
| 238 |
- |
|
| 239 |
-*New restart policies* |
|
| 240 |
- |
|
| 241 |
-We added a `--restart flag` to `docker run` to specify a restart policy for your |
|
| 242 |
-container. Currently, there are three policies available: |
|
| 243 |
- |
|
| 244 |
-* `no` – Do not restart the container if it dies. (default) * `on-failure` – |
|
| 245 |
-Restart the container if it exits with a non-zero exit code. This can also |
|
| 246 |
-accept an optional maximum restart count (e.g. `on-failure:5`). * `always` – |
|
| 247 |
-Always restart the container no matter what exit code is returned. This |
|
| 248 |
-deprecates the `--restart` flag on the Docker daemon. |
|
| 249 |
- |
|
| 250 |
-*New flags for `docker run`: `--cap-add` and `--cap-drop`* |
|
| 251 |
- |
|
| 252 |
-In previous releases, Docker containers could either be given complete |
|
| 253 |
-capabilities or they could all follow a whitelist of allowed capabilities while |
|
| 254 |
-dropping all others. Further, using `--privileged` would grant all capabilities |
|
| 255 |
-inside a container, rather than applying a whitelist. This was not recommended |
|
| 256 |
-for production use because it’s really unsafe; it’s as if you were directly in |
|
| 257 |
-the host. |
|
| 258 |
- |
|
| 259 |
-This release introduces two new flags for `docker run`, `--cap-add` and |
|
| 260 |
-`--cap-drop`, that give you fine-grain control over the specific capabilities |
|
| 261 |
-you want grant to a particular container. |
|
| 262 |
- |
|
| 263 |
-*New `--device` flag for `docker run`* |
|
| 264 |
- |
|
| 265 |
-Previously, you could only use devices inside your containers by bind mounting |
|
| 266 |
-them (with `-v`) in a `--privileged` container. With this release, we introduce |
|
| 267 |
-the `--device flag` to `docker run` which lets you use a device without |
|
| 268 |
-requiring a privileged container. |
|
| 269 |
- |
|
| 270 |
-*Writable `/etc/hosts`, `/etc/hostname` and `/etc/resolv.conf`* |
|
| 271 |
- |
|
| 272 |
-You can now edit `/etc/hosts`, `/etc/hostname` and `/etc/resolve.conf` in a |
|
| 273 |
-running container. This is useful if you need to install BIND or other services |
|
| 274 |
-that might override one of those files. |
|
| 275 |
- |
|
| 276 |
-Note, however, that changes to these files are not saved when running `docker |
|
| 277 |
-build` and so will not be preserved in the resulting image. The changes will |
|
| 278 |
-only “stick” in a running container. |
|
| 279 |
- |
|
| 280 |
-*Docker proxy in a separate process* |
|
| 281 |
- |
|
| 282 |
-The Docker userland proxy that routes outbound traffic to your containers now |
|
| 283 |
-has its own separate process (one process per connection). This greatly reduces |
|
| 284 |
-the load on the daemon, which increases stability and efficiency. |
|
| 285 |
- |
|
| 286 |
-###Other improvements & changes |
|
| 287 |
- |
|
| 288 |
-* When using `docker rm -f`, Docker now kills the container (instead of stopping |
|
| 289 |
-it) before removing it . If you intend to stop the container cleanly, you can |
|
| 290 |
-use `docker stop`. |
|
| 291 |
- |
|
| 292 |
-* Added support for IPv6 addresses in `--dns` |
|
| 293 |
- |
|
| 294 |
-* Added search capability in private registries |
|
| 295 |
- |
|
| 296 |
-##Version 1.1.0 |
|
| 297 |
- |
|
| 298 |
-###New Features |
|
| 299 |
- |
|
| 300 |
-*`.dockerignore` support* |
|
| 301 |
- |
|
| 302 |
-You can now add a `.dockerignore` file next to your `Dockerfile` and Docker will |
|
| 303 |
-ignore files and directories specified in that file when sending the build |
|
| 304 |
-context to the daemon. Example: |
|
| 305 |
-https://github.com/docker/docker/blob/master/.dockerignore |
|
| 306 |
- |
|
| 307 |
-*Pause containers during commit* |
|
| 308 |
- |
|
| 309 |
-Doing a commit on a running container was not recommended because you could end |
|
| 310 |
-up with files in an inconsistent state (for example, if they were being written |
|
| 311 |
-during the commit). Containers are now paused when a commit is made to them. You |
|
| 312 |
-can disable this feature by doing a `docker commit --pause=false <container_id>` |
|
| 313 |
- |
|
| 314 |
-*Tailing logs* |
|
| 315 |
- |
|
| 316 |
-You can now tail the logs of a container. For example, you can get the last ten |
|
| 317 |
-lines of a log by using `docker logs --tail 10 <container_id>`. You can also |
|
| 318 |
-follow the logs of a container without having to read the whole log file with |
|
| 319 |
-`docker logs --tail 0 -f <container_id>`. |
|
| 320 |
- |
|
| 321 |
-*Allow a tar file as context for docker build* |
|
| 322 |
- |
|
| 323 |
-You can now pass a tar archive to `docker build` as context. This can be used to |
|
| 324 |
-automate docker builds, for example: `cat context.tar | docker build -` or |
|
| 325 |
-`docker run builder_image | docker build -` |
|
| 326 |
- |
|
| 327 |
-*Bind mounting your whole filesystem in a container* |
|
| 328 |
- |
|
| 329 |
-`/` is now allowed as source of `--volumes`. This means you can bind-mount your |
|
| 330 |
-whole system in a container if you need to. For example: `docker run -v |
|
| 331 |
-/:/my_host ubuntu:ro ls /my_host`. However, it is now forbidden to mount to /. |
|
| 332 |
- |
|
| 333 |
- |
|
| 334 |
-###Other Improvements & Changes |
|
| 335 |
- |
|
| 336 |
-* Port allocation has been improved. In the previous release, Docker could |
|
| 337 |
-prevent you from starting a container with previously allocated ports which |
|
| 338 |
-seemed to be in use when in fact they were not. This has been fixed. |
|
| 339 |
- |
|
| 340 |
-* A bug in `docker save` was introduced in the last release. The `docker save` |
|
| 341 |
-command could produce images with invalid metadata. The command now produces |
|
| 342 |
-images with correct metadata. |
|
| 343 |
- |
|
| 344 |
-* Running `docker inspect` in a container now returns which containers it is |
|
| 345 |
-linked to. |
|
| 346 |
- |
|
| 347 |
-* Parsing of the `docker commit` flag has improved validation, to better prevent |
|
| 348 |
-you from committing an image with a name such as `-m`. Image names with dashes |
|
| 349 |
-in them potentially conflict with command line flags. |
|
| 350 |
- |
|
| 351 |
-* The API now has Improved status codes for `start` and `stop`. Trying to start |
|
| 352 |
-a running container will now return a 304 error. |
|
| 353 |
- |
|
| 354 |
-* Performance has been improved overall. Starting the daemon is faster than in |
|
| 355 |
-previous releases. The daemon’s performance has also been improved when it is |
|
| 356 |
-working with large numbers of images and containers. |
|
| 357 |
- |
|
| 358 |
-* Fixed an issue with white-spaces and multi-lines in Dockerfiles. |
|
| 359 |
- |
|
| 360 |
-##Version 1.1.0 |
|
| 361 |
- |
|
| 362 |
-###New Features |
|
| 363 |
- |
|
| 364 |
-*`.dockerignore` support* |
|
| 365 |
- |
|
| 366 |
-You can now add a `.dockerignore` file next to your `Dockerfile` and Docker will |
|
| 367 |
-ignore files and directories specified in that file when sending the build |
|
| 368 |
-context to the daemon. Example: |
|
| 369 |
-https://github.com/dotcloud/docker/blob/master/.dockerignore |
|
| 370 |
- |
|
| 371 |
-*Pause containers during commit* |
|
| 372 |
- |
|
| 373 |
-Doing a commit on a running container was not recommended because you could end |
|
| 374 |
-up with files in an inconsistent state (for example, if they were being written |
|
| 375 |
-during the commit). Containers are now paused when a commit is made to them. You |
|
| 376 |
-can disable this feature by doing a `docker commit --pause=false <container_id>` |
|
| 377 |
- |
|
| 378 |
-*Tailing logs* |
|
| 379 |
- |
|
| 380 |
-You can now tail the logs of a container. For example, you can get the last ten |
|
| 381 |
-lines of a log by using `docker logs --tail 10 <container_id>`. You can also |
|
| 382 |
-follow the logs of a container without having to read the whole log file with |
|
| 383 |
-`docker logs --tail 0 -f <container_id>`. |
|
| 384 |
- |
|
| 385 |
-*Allow a tar file as context for docker build* |
|
| 386 |
- |
|
| 387 |
-You can now pass a tar archive to `docker build` as context. This can be used to |
|
| 388 |
-automate docker builds, for example: `cat context.tar | docker build -` or |
|
| 389 |
-`docker run builder_image | docker build -` |
|
| 390 |
- |
|
| 391 |
-*Bind mounting your whole filesystem in a container* |
|
| 392 |
- |
|
| 393 |
-`/` is now allowed as source of `--volumes`. This means you can bind-mount your |
|
| 394 |
-whole system in a container if you need to. For example: `docker run -v |
|
| 395 |
-/:/my_host ubuntu:ro ls /my_host`. However, it is now forbidden to mount to /. |
|
| 396 |
- |
|
| 397 |
- |
|
| 398 |
-###Other Improvements & Changes |
|
| 399 |
- |
|
| 400 |
-* Port allocation has been improved. In the previous release, Docker could |
|
| 401 |
-prevent you from starting a container with previously allocated ports which |
|
| 402 |
-seemed to be in use when in fact they were not. This has been fixed. |
|
| 403 |
- |
|
| 404 |
-* A bug in `docker save` was introduced in the last release. The `docker save` |
|
| 405 |
-command could produce images with invalid metadata. The command now produces |
|
| 406 |
-images with correct metadata. |
|
| 407 |
- |
|
| 408 |
-* Running `docker inspect` in a container now returns which containers it is |
|
| 409 |
-linked to. |
|
| 410 |
- |
|
| 411 |
-* Parsing of the `docker commit` flag has improved validation, to better prevent |
|
| 412 |
-you from committing an image with a name such as `-m`. Image names with dashes |
|
| 413 |
-in them potentially conflict with command line flags. |
|
| 414 |
- |
|
| 415 |
-* The API now has Improved status codes for `start` and `stop`. Trying to start |
|
| 416 |
-a running container will now return a 304 error. |
|
| 417 |
- |
|
| 418 |
-* Performance has been improved overall. Starting the daemon is faster than in |
|
| 419 |
-previous releases. The daemon’s performance has also been improved when it is |
|
| 420 |
-working with large numbers of images and containers. |
|
| 421 |
- |
|
| 422 |
-* Fixed an issue with white-spaces and multi-lines in Dockerfiles. |
|
| 423 |
- |
|
| 424 |
-##Version 1.0.0 |
|
| 73 |
+> **Note:** |
|
| 74 |
+> Development history prior to version 1.0 can be found by |
|
| 75 |
+> searching in the [Docker GitHub repo](https://github.com/docker/docker). |
|
| 425 | 76 |
|
| 426 |
-First production-ready release. Prior development history can be found by |
|
| 427 |
-searching in [GitHub](https://github.com/docker/docker). |