Docker Core Engineering

Introducing Docker 1.13

Today we’re releasing Docker 1.13 with lots of new features, improvements and fixes to help Docker users with New Year’s resolutions to build more and better container apps. Docker 1.13 builds on and improves Docker swarm mode introduced in Docker 1.12 and has lots of other fixes. Read on for Docker 1.13 highlights.

Docker 1.13

Use compose-files to deploy swarm mode services

Docker 1.13 adds Compose-file support to the `docker stack deploy` command so that services can be deployed using a `docker-compose.yml` file directly. Powering this is a major effort to extend the swarm service API to make it more flexible and useful.

Benefits include:

  • Specifying the number of desired instances for each service
  • Rolling update policies
  • Service constraints

Deploying a multi-host, multi-service stack is now as simple as:

docker stack deploy --compose-file=docker-compose.yml my_stack

Improved CLI backwards compatibility

Ever been bitten by the dreaded Error response from daemon: client is newer than server problem because your Docker CLI was updated, but you still need to use it with older Docker engines?

Starting with 1.13, newer CLIs can talk to older daemons. We’re also adding feature negotiation so that proper errors are returned if a new client is attempting to use features not supported in an older daemon. This greatly improves interoperability and makes it much simpler to manage Docker installs with different versions from the same machine.

Clean-up commands

Docker 1.13 introduces a couple of nifty commands to help users understand how much disk space Docker is using, and help remove unused data.

  • docker system df will show used space, similar to the unix tool df
  • docker system prune will remove all unused data.

Prune can also be used to clean up just some types of data. For example: docker volume prune removes unused volumes only.

CLI restructured

Docker has grown many features over the past couple years and the Docker CLI now has a lot of commands (40 at the time of writing). Some, like build or run are used a lot, some are more obscure, like pause or history. The many top-level commands clutters help pages and makes tab-completion harder.

In Docker 1.13, we regrouped every command to sit under the logical object it’s interacting with. For example list and startof containers are now subcommands of docker container and history is a subcommand of docker image.

docker container list
docker container start
docker image history

These changes let us clean up the Docker CLI syntax, improve help text and make Docker simpler to use. The old command syntax is still supported, but we encourage everybody to adopt the new syntax.

Monitoring improvements

docker service logs is a powerful new experimental command that makes debugging services much simpler. Instead of having to track down hosts and containers powering a particular service and pulling logs from those containers, docker service logs pulls logs from all containers running a service and streams them to your console.

Docker 1.13 also adds an experimental Prometheus-style endpoint with basic metrics on containers, images and other daemon stats.

Build improvements

docker build has a new experimental --squash flag. When squashing, Docker will take all the filesystem layers produced by a build and collapse them into a single new layer. This can simplify the process of creating minimal container images, but may result in slightly higher overhead when images are moved around (because squashed layers can no longer be shared between images). Docker still caches individual layers to make subsequent builds fast.

1.13 also has support for compressing the build context that is sent from CLI to daemon using the --compress flag. This will speed up builds done on remote daemons by reducing the amount of data sent.

Docker for AWS and Azure out of beta

Docker for AWS and Azure are out of public beta and ready for production. We’ve spent the past 6 months perfecting Docker for AWS and Azure and incorporating user feedback, and we’re incredibly grateful to all the users that helped us test and identify problems. Also, stay tuned for more updates and enhancements over the coming months.

Get started with Docker 1.13

Docker for Mac and Windows users on both beta and stable channels will get automatic upgrade notifications (in fact, beta channel users have been running Docker 1.13 release clients for the past couple of months). If you’re new to Docker, download Docker for Mac and Windows to get started.

To deploy Docker for AWS or Docker for Azure, check out the docs or use these buttons to get started:

Docker for AWS

Docker for Azure

If you are interested in installing Docker on Linux, check the install instructions for details.

Helpful links:

 

, , , , ,

Docker Core Engineering

Introducing Docker 1.13


7 Responses to “Introducing Docker 1.13”

  1. Mark Allison

    Will this be integrated into Windows Server 2016 containers soon in a CU or Service Pack?

    Reply
  2. fredgate

    How to install docker 1.13 on Windows Server 2016 ?

    Reply
  3. Jordi

    Do "docker stack" replace docker-compose? Or are there use cases for docker-compose which you can't cover with docker stack?

    Reply
  4. lookout

    /Clean-up commands/
    docker system prune – will remove all unused data.

    What exactly means "all unused data"?

    Thx

    Reply
    • esBeee

      $ docker system prune
      WARNING! This will remove:
      – all stopped containers
      – all volumes not used by at least one container
      – all networks not used by at least one container
      – all dangling images
      Are you sure you want to continue? [y/N]

      Reply
  5. Jamshid

    These kinds of blog articles outlining new features are extremely useful, more of them please. When is the 17.04 / compose 1.12 blog post coming out?

    Reply

Leave a Reply to lookout

Click here to cancel reply.

Get the Latest Docker News by Email

Docker Weekly is a newsletter with the latest content on Docker and the agenda for the upcoming weeks.