What is Docker?

Docker is the world's leading software containerization platform

Get Started with Docker

Package your application into a standardized unit for software development

Docker containers wrap a piece of software in a complete filesystem that contains everything needed to run: code, runtime, system tools, system libraries – anything that can be installed on a server. This guarantees that the software will always run the same, regardless of its environment.

  • LIGHTWEIGHT

    Containers running on a single machine share the same operating system kernel; they start instantly and use less RAM. Images are constructed from layered filesystems and share common files, making disk usage and image downloads much more efficient.

  • OPEN

    Docker containers are based on open standards, enabling containers to run on all major Linux distributions and on Microsoft Windows -- and on top of any infrastructure.

  • SECURE BY DEFAULT

    Containers isolate applications from one another and the underlying infrastructure, while providing an added layer of protection for the application.

COMPARING CONTAINERS AND VIRTUAL MACHINES

Containers and virtual machines have similar resource isolation and allocation benefits -- but a different architectural approach allows containers to be more portable and efficient.

  • VIRTUAL MACHINES

    Virtual machines include the application, the necessary binaries and libraries, and an entire guest operating system -- all of which can amount to tens of GBs.

  • CONTAINERS

    Containers include the application and all of its dependencies --but share the kernel with other containers, running as isolated processes in user space on the host operating system. Docker containers are not tied to any specific infrastructure: they run on any computer, on any infrastructure, and in any cloud.

BUILD BETTER SOFTWARE

Skip the setup and maintenance of development environments and language-specific tooling. Focus on creating new features, fixing issues, and shipping software.

  • ACCELERATE DEVELOPERS

    Stop wasting hours setting up developer environments, spinning up new instances, and making copies of production code to run locally. With Docker, you simply take copies of your live environment and run them on any new endpoint running a Docker engine.

  • EMPOWER CREATIVITY

    The isolation capabilities of Docker containers free developers from constraints: they can use the best language and tools for their application services without worrying about causing internal tooling conflicts.

  • ELIMINATE ENVIRONMENT INCONSISTENCIES

    Packaging an application in a container with its configs and dependencies guarantees that the application will always work as designed in any environment: locally, on another machine, in test or production. No more worries about having to install the same configurations into different environments.

SHARE AND COLLABORATE

Docker creates a common framework for developers and sysadmins to work together on distributed applications

  • DISTRIBUTE & SHARE CONTENT

    Store, distribute, and manage Docker images in Docker Hub with your team. Image updates, changes, and history are automatically shared across your organization.

  • SIMPLY SHARE YOUR APPLICATION WITH OTHERS

    Ship containers without worrying about environment dependencies creating issues for your application. Other teams can easily link to or test against your app without having to learn about how it works.

SHIP SOFTWARE FASTER AND AT SCALE

Docker allows you to dynamically change your application -- from adding new capabilities and scaling services, to quickly changing problem areas.

  • SHIP 7X MORE

    On average, Docker users ship 7X more software after deploying Docker in their environment. More frequent software updates provide added value to customers.

  • QUICKLY SCALE

    Docker containers spin up and down in seconds, making it easy to scale application services to satisfy peak customer demand, and then reduce running containers when demand ebbs.

  • EASILY REMEDIATE ISSUES

    Docker makes it easy to identify issues, isolate the problem container, quickly roll back to make the necessary changes, and then push the updated container into production. Isolation between containers makes these changes less disruptive than in traditional software models.