2014-04-15 02:01:25 -04:00
|
|
|
page_title: About Docker
|
2014-05-18 12:52:41 -04:00
|
|
|
page_description: Introduction to Docker.
|
2014-04-15 02:01:25 -04:00
|
|
|
page_keywords: docker, introduction, documentation, about, technology, understanding, Dockerfile
|
|
|
|
|
|
|
|
# About Docker
|
|
|
|
|
2014-05-18 12:52:41 -04:00
|
|
|
**Develop, Ship and Run Any Application, Anywhere**
|
2014-04-15 02:01:25 -04:00
|
|
|
|
2014-06-23 14:35:15 -04:00
|
|
|
[**Docker**](https://www.docker.com) is a platform for developers and sysadmins
|
2014-06-05 17:50:04 -04:00
|
|
|
to develop, ship, and run applications. Docker lets you quickly assemble
|
|
|
|
applications from components and eliminates the friction that can come when
|
|
|
|
shipping code. Docker lets you get your code tested and deployed into production
|
|
|
|
as fast as possible.
|
2014-05-18 12:52:41 -04:00
|
|
|
|
2014-06-04 16:17:21 -04:00
|
|
|
Docker consists of:
|
2014-05-18 12:52:41 -04:00
|
|
|
|
2014-06-04 16:17:21 -04:00
|
|
|
* The Docker Engine - our lightweight and powerful open source container
|
|
|
|
virtualization technology combined with a work flow for building
|
|
|
|
and containerizing your applications.
|
2014-06-14 17:13:55 -04:00
|
|
|
* [Docker Hub](https://hub.docker.com) - our SaaS service for
|
2014-06-04 16:17:21 -04:00
|
|
|
sharing and managing your application stacks.
|
2014-05-18 12:52:41 -04:00
|
|
|
|
|
|
|
## Why Docker?
|
|
|
|
|
2014-07-02 19:33:13 -04:00
|
|
|
*Faster delivery of your applications*
|
|
|
|
|
|
|
|
* We want your environment to work better. Docker containers,
|
2014-06-04 16:17:21 -04:00
|
|
|
and the work flow that comes with them, help your developers,
|
|
|
|
sysadmins, QA folks, and release engineers work together to get your code
|
|
|
|
into production and make it useful. We've created a standard
|
|
|
|
container format that lets developers care about their applications
|
|
|
|
inside containers while sysadmins and operators can work on running the
|
2014-06-05 17:50:04 -04:00
|
|
|
container in your deployment. This separation of duties streamlines and
|
|
|
|
simplifies the management and deployment of code.
|
2014-07-02 19:33:13 -04:00
|
|
|
* We make it easy to build new containers, enable rapid iteration of
|
2014-06-04 16:17:21 -04:00
|
|
|
your applications, and increase the visibility of changes. This
|
2014-05-23 04:29:50 -04:00
|
|
|
helps everyone in your organization understand how an application works
|
|
|
|
and how it is built.
|
2014-07-02 19:33:13 -04:00
|
|
|
* Docker containers are lightweight and fast! Containers have
|
2014-06-04 16:17:21 -04:00
|
|
|
sub-second launch times, reducing the cycle
|
|
|
|
time of development, testing, and deployment.
|
2014-05-18 12:52:41 -04:00
|
|
|
|
2014-07-02 19:33:13 -04:00
|
|
|
*Deploy and scale more easily*
|
|
|
|
|
|
|
|
* Docker containers run (almost) everywhere. You can deploy
|
2014-05-18 12:52:41 -04:00
|
|
|
containers on desktops, physical servers, virtual machines, into
|
2014-06-04 16:17:21 -04:00
|
|
|
data centers, and up to public and private clouds.
|
2014-07-02 19:33:13 -04:00
|
|
|
* Since Docker runs on so many platforms, it's easy to move your
|
2014-06-05 19:55:32 -04:00
|
|
|
applications around. You can easily move an application from a
|
2014-05-18 12:52:41 -04:00
|
|
|
testing environment into the cloud and back whenever you need.
|
2014-07-02 19:33:13 -04:00
|
|
|
* Docker's lightweight containers also make scaling up and
|
2014-06-05 17:50:04 -04:00
|
|
|
down fast and easy. You can quickly launch more containers when
|
|
|
|
needed and then shut them down easily when they're no longer needed.
|
2014-05-18 12:52:41 -04:00
|
|
|
|
2014-07-02 19:33:13 -04:00
|
|
|
*Get higher density and run more workloads*
|
|
|
|
|
|
|
|
* Docker containers don't need a hypervisor, so you can pack more of
|
2014-05-18 12:52:41 -04:00
|
|
|
them onto your hosts. This means you get more value out of every
|
2014-06-04 16:17:21 -04:00
|
|
|
server and can potentially reduce what you spend on equipment and
|
|
|
|
licenses.
|
2014-05-18 12:52:41 -04:00
|
|
|
|
2014-07-02 19:33:13 -04:00
|
|
|
*Faster deployment makes for easier management*
|
|
|
|
|
|
|
|
* As Docker speeds up your work flow, it gets easier to make lots
|
2014-06-04 16:17:21 -04:00
|
|
|
of small changes instead of huge, big bang updates. Smaller
|
|
|
|
changes mean reduced risk and more uptime.
|
2014-04-15 02:01:25 -04:00
|
|
|
|
|
|
|
## About this guide
|
|
|
|
|
2014-07-02 19:33:13 -04:00
|
|
|
The [Understanding Docker section](introduction/understanding-docker.md) will help you:
|
2014-04-15 02:01:25 -04:00
|
|
|
|
2014-06-04 16:17:21 -04:00
|
|
|
- See how Docker works at a high level
|
|
|
|
- Understand the architecture of Docker
|
2014-05-18 12:52:41 -04:00
|
|
|
- Discover Docker's features;
|
2014-06-04 16:17:21 -04:00
|
|
|
- See how Docker compares to virtual machines
|
|
|
|
- See some common use cases.
|
2014-04-15 02:01:25 -04:00
|
|
|
|
2014-05-21 17:05:19 -04:00
|
|
|
### Installation Guides
|
2014-04-15 02:01:25 -04:00
|
|
|
|
2014-10-15 15:21:18 -04:00
|
|
|
The [installation section](/installation/#installation) will show you how to
|
|
|
|
install Docker on a variety of platforms.
|
2014-04-15 02:01:25 -04:00
|
|
|
|
|
|
|
|
2014-05-21 17:05:19 -04:00
|
|
|
### Docker User Guide
|
|
|
|
|
2014-08-27 21:34:19 -04:00
|
|
|
To learn about Docker in more detail and to answer questions about usage and
|
|
|
|
implementation, check out the [Docker User Guide](/userguide/).
|
|
|
|
|
|
|
|
## Release Notes
|
|
|
|
|
2014-10-13 20:17:41 -04:00
|
|
|
**Version 1.3.0**
|
2014-08-27 21:34:19 -04:00
|
|
|
|
|
|
|
This version fixes a number of bugs and issues and adds new functions and other
|
2014-10-15 15:21:18 -04:00
|
|
|
improvements. The [GitHub 1.3 milestone](https://github.com/docker/docker/issues?q=milestone%3A1.3.0+) has
|
|
|
|
more detailed information. Major additions and changes include:
|
2014-08-27 21:34:19 -04:00
|
|
|
|
2014-10-13 20:17:41 -04:00
|
|
|
*New command: `docker exec`*
|
2014-08-27 21:34:19 -04:00
|
|
|
|
2014-10-13 20:17:41 -04:00
|
|
|
The new `docker exec` command lets you run a process in an existing, active
|
|
|
|
container. The command has APIs for both the daemon and the client. With
|
2014-10-15 15:21:18 -04:00
|
|
|
`docker exec`, you'll be able to do things like add or remove devices from
|
|
|
|
running containers, debug running containers, and run commands that are not
|
|
|
|
part of the container's static specification. Details in the [command line
|
2014-10-15 15:21:18 -04:00
|
|
|
reference](/reference/commandline/cli/#exec).
|
2014-08-27 21:34:19 -04:00
|
|
|
|
2014-10-13 20:17:41 -04:00
|
|
|
*New command: `docker create`*
|
2014-08-27 21:34:19 -04:00
|
|
|
|
2014-10-13 20:17:41 -04:00
|
|
|
Traditionally, the `docker run` command has been used to both create a
|
|
|
|
container and spawn a process to run it. The new `docker create` command breaks
|
|
|
|
this apart, letting you set up a container without actually starting it. This
|
|
|
|
provides more control over management of the container lifecycle, giving you the
|
|
|
|
ability to configure things like volumes or port mappings before the container
|
|
|
|
is started. For example, in a rapid-response scaling situation, you could use
|
|
|
|
`create` to prepare and stage ten containers in anticipation of heavy loads.
|
2014-10-15 15:21:18 -04:00
|
|
|
Details in the [command line reference](/reference/commandline/cli/#create).
|
2014-08-27 21:34:19 -04:00
|
|
|
|
2014-10-15 19:08:07 -04:00
|
|
|
*Tech preview of new provenance features*
|
|
|
|
|
|
|
|
This release offers a sneak peek at new image signing capabilities that are
|
|
|
|
currently under development. Soon, these capabilities will allow any image
|
|
|
|
author to sign their images to certify they have not been tampered with. For
|
|
|
|
this release, Official images are now signed by Docker, Inc. Not only does this
|
|
|
|
demonstrate the new functionality, we hope it will improve your confidence in
|
|
|
|
the security of Official images. Look for the blue ribbons denoting signed
|
|
|
|
images on the [Docker Hub](https://hub.docker.com/).
|
|
|
|
The Docker Engine has been updated to automatically verify that a given
|
|
|
|
Official Repo has a current, valid signature. When pulling a signed image,
|
|
|
|
you'll see a message stating `the image you are pulling has been verified`. If
|
|
|
|
no valid signature is detected, Docker Engine will fall back to pulling a
|
|
|
|
regular, unsigned image.
|
2014-08-27 21:34:19 -04:00
|
|
|
|
2014-08-28 20:29:09 -04:00
|
|
|
*Other improvements & changes*
|
2014-08-27 21:34:19 -04:00
|
|
|
|
2014-10-15 15:21:18 -04:00
|
|
|
* We've added a new security options flag to the `docker run` command,
|
|
|
|
`--security-opt`, that lets you set SELinux and AppArmor labels and profiles.
|
|
|
|
This means you'll no longer have to use `docker run --privileged` on kernels
|
|
|
|
that support SE Linux or AppArmor. For more information, see the
|
2014-10-15 15:21:18 -04:00
|
|
|
[command line reference](/reference/commandline/cli/#run).
|
2014-07-02 19:33:13 -04:00
|
|
|
|
2014-10-15 15:21:18 -04:00
|
|
|
* A new flag, `--add-host`, has been added to `docker run` that lets you add
|
|
|
|
lines to `/etc/hosts`. This allows you to specify different name
|
|
|
|
resolution for the container than it would get via DNS. For more information,
|
2014-10-15 15:21:18 -04:00
|
|
|
see the [command line reference](/reference/commandline/cli/#run).
|
2014-10-15 15:21:18 -04:00
|
|
|
|
|
|
|
* You can now set a `DOCKER_TLS_VERIFY` environment variable to secure
|
|
|
|
connections by default (rather than having to pass the `--tlsverify` flag on
|
|
|
|
every call). For more information, see the [https guide](/articles/https).
|
|
|
|
|
|
|
|
* Three security issues have been addressed in this release: [CVE-2014-5280,
|
|
|
|
CVE-2014-5270, and CVE-2014-5282](https://groups.google.com/forum/#!msg/docker-announce/aQoVmQlcE0A/smPuBNYf8VwJ).
|