June 9, 2014 9:30am PT
On March 20, 2013, we released the first version of Docker. After 15 months, 8,741 commits from more than 460 contributors, 2.75 million downloads, over 14,000 “Dockerized” apps, and feedback from 10s of 1000s of users about their experience with Docker, from a single container on a laptop to 1000s in production in the cloud … we’re excited to announce that it’s here: Docker 1.0.
It’s a milestone we celebrate with the entire Docker community, for without the community’s contributions, pull requests, and answering of each other’s questions on IRC and forums none of this would have been possible. And without the community hosting more than 250 meetups in 90 cities across 30 countries, the awareness, understanding, and excitement of Docker would not have spread as rapidly.
What’s In A Number?
We think this milestone means several things:
First, while many organizations have cheerfully ignored our “Do not run in production!” warnings, others have been waiting for a level of product maturity before deploying production workloads. This release’s “1.0” label signifies a level of quality, feature completeness, backward compatibility and API stability to meet enterprise IT standards. In addition, to provide a full solution for using Docker in production we’re also delivering complete documentation, training programs, professional services, and enterprise support.
Second, this milestone signifies Docker’s coming into its own as an open platform for distribution apps. In particular, the community’s use of Docker in such a wide variety of use-cases and apps in every phase of the application lifecycle confirms this. So from today you’ll hear us talk about Docker as a platform, its components being Docker Engine, the container runtime and packaging tool, and Docker Hub, a cloud-based service for collaboration, content, and workflow automation.
Third, the “1.0” designation and platform recognition opens the door for continued innovation on many fronts. We don’t want to steal his thunder, so be sure to tune-in to Solomon’s keynote tomorrow morning to get a first look at early versions of these new platform services and capabilities
Enough Already – What’s The Latest In 1.0?
First off, we wish to thank several of those who made major contributions to this release since the 0.11 release in May, including Alexander Morozov, Vish Kannan, Ian Main, and Chris Alfonso. GitHub Pulse gives more detail on all the contributions around the release.
Building for Developers
- Docker build has a new instruction, COPY, which copies files and folders as-is from the build context;
- Improvements around the ADD instruction and volumes to retain ownership and permissions of files during the build of images.
Ops Tooling for Sysadmins
- The Docker Engine now has the ability to pause and unpause running containers, allowing users to reclaim CPU cycles that a container is using for better resource scheduling on the system.
- We’ve updated the security profile for device access and capabilities for containers;
- In terms of storage and file systems, we’ve made Device Mapper improvements, added XFS support, added the ability to use a physical device, and made speed improvements around the performance of container removal.
- Finally, we’re pleased to announce that the Docker Engine has received an official port reservation from IANA: Port 2375 will be used for HTTP and 2376 will be used for HTTPS traffic to the Docker API.
Something For Everyone
Since 0.11 we’ve also made over 40 bug fixes, improved API consistency, and completely re-wrote the documentation.
For the full list of 1.0 features and fixes, please see the commits.
Thanks again to the entire Docker community for your contributions toward achieving Docker 1.0! We can’t wait to see what our collective efforts will result in during the next 15 months.
Build, Ship, & Run!
- The Docker Team