What is Docker?

Docker lets you build, test, and deploy applications quickly

Docker-Logo_Horizontel_279x131

Docker is a software platform that allows you to build, test, and deploy applications quickly. Docker packages software into standardized units called containers that have everything the software needs to run including libraries, system tools, code, and runtime. Using Docker, you can quickly deploy and scale applications into any environment and know your code will run.

Running Docker on AWS provides developers and admins a highly reliable, low-cost way to build, ship, and run distributed applications at any scale. AWS supports both Docker licensing models: open source Docker Community Edition (CE) and subscription-based Docker Enterprise Edition (EE).

How Docker works

Docker works by providing a standard way to run your code. Docker is an operating system for containers. Similar to how a virtual machine virtualizes (removes the need to directly manage) server hardware, containers virtualize the operating system of a server. Docker is installed on each server and provides simple commands you can use to build, start, or stop containers.

AWS services such as AWS Fargate, Amazon ECSAmazon EKS, and AWS Batch make it easy to run and manage Docker containers at scale.

monolith_2-VM-vs-Containers

Why use Docker

Using Docker lets you ship code faster, standardize application operations, seamlessly move code, and save money by improving resource utilization. With Docker, you get a single object that can reliably run anywhere. Docker's simple and straightforward syntax gives you full control. Wide adoption means there's a robust ecosystem of tools and off-the-shelf applications that are ready to use with Docker.

100x100_benefit_deployment1

Ship More Software Faster

Docker users on average ship software 7x more frequently than non-Docker users. Docker enables you to ship isolated services as often as needed.

100x100_benefit_tools

Standardize Operations

Small containerized applications make it easy to deploy, identify issues, and roll back for remediation.

100x100_benefit_migration

Seamlessly Move

Docker-based applications can be seamlessly moved from local development machines to production deployments on AWS.

100x100_benefit_lowcost-affordable

Save Money

Docker containers make it easier to run more code on each server, improving your utilization and saving you money.

When to use Docker

You can use Docker containers as a core building block creating modern applications and platforms. Docker makes it easy to build and run distributed microservices architecures, deploy your code with standardized continuous integration and delivery pipelines, build highly-scalable data processing systems, and create fully-managed platforms for your developers.

100x100_benefit_ccontainers

Microservices

Build and scale distributed application architectures by taking advantage of standardized code deployments using Docker containers.

100x100_benefit_delivery

Continuous Integration & Delivery

Accelerate application delivery by standardizing environments and removing conflicts between language stacks and versions.

AWS_Benefit Icon_AutomatedOperations

Data Processing

Provide big data processing as a service. Package data and analytics packages into portable containers that can be executed by non-technical users.

100x100_benefit_get-started-2

Containers as a Service

Build and ship distributed applications with content and infrastructure that is IT-managed and secured.

Docker frequently asked questions

Q: Is Docker free?

Docker Community Edition (CE) is free for anyone to use. This version of Docker is open source and can be used on a variety of platforms including Windows, Mac, and Linux. You can install Docker CE yourself on your computer or an Amazon EC2 virtual machine instance, or start using it immediatly with the Amazon ECS-optimized AMI.

Docker Enterprise Edition (EE) adds additional features for workflow management and security and is a paid subscription available through the AWS Marketplace.

Q: What can I do with Docker?

Using Docker, you can quickly deploy and scale applications into any environment and know your code will run. You can do this because Docker packages software into standardized units called containers that have everything the software needs to run including libraries, system tools, code, and runtime.

Q: What is a Docker Image?

A Docker image is a read-only template that defines your container. The image contains the code that will run including any definitions for any libraries and dependancies your code needs. A Docker container is an instantiated (running) Docker image. AWS provides Amazon Elastic Container Registry (ECR), an image registry for storing and quickly retrieving Docker images.

Q: What is the difference between Docker Swarm, Kubernetes, and Amazon ECS?

When you want to run lots of Docker containers, orchestration tools like Docker Swarm, Kubernetes, and Amazon Elastic Container Service (ECS) make it possible to start, stop, and monitor thousands (or millions) of containers. 

Docker Swarm is container orchestration software made by Docker that you run and manage yourself. Kubernetes is a popular open source, community maintained container orchestration software that you run and manage yourself. Amazon EKS makes it easier to run Kubernetes on AWS by providing managing the Kubernetes control plane for your containers. Amazon ECS is a fully managed AWS service that makes it easy to run containers on AWS with deep integrations to AWS services such as VPC, load balancing, service discovery, and IAM roles.

Q: What is the difference between Docker and a virtual machine?

Virtual machines (VMs) virtualize (or remove the need to directly manage) server hardware while containers virtualize the operating system of a server. Docker is an operating system (or runtime) for containers. The Docker Engine is installed on each server you want to run containers on and provides a simple set of commands you can use to build, start, or stop containers.

monolith_2-VM-vs-Containers

Run Docker on AWS

AWS provides support for both Docker open-source and commercial solutions. There are a number of ways to run containers on AWS, including Amazon Elastic Container Service (ECS) is a highly scalable, high performance container management service. AWS Fargate is a technology for Amazon ECS that lets you run containers in production without deploying or managing infrastructure. Amazon Elastic Container Service for Kubernetes (EKS) makes it easy for you to run Kubernetes on AWS. AWS Fargate is technology for Amazon ECS that lets you run containers without provisioning or managing servers. Amazon Elastic Container Registry (ECR) is a highly available and secure private container repository that makes it easy to store and manage your Docker container images, encrypting and compressing images at rest so they are fast to pull and secure. AWS Batch lets you run highly-scalable batch processing workloads using Docker containers.

new_product_ecs

Amazon ECS

Amazon ECS is a highly scalable, high-performance container orchestration service to run Docker containers on the AWS cloud.

new_product_fargate

AWS Fargate

AWS Fargate is a technology for Amazon ECS that lets you run Docker containers without deploying or managing infrastructure.

new_product_eks

Amazon EKS

Amazon EKS makes it easy to run Kubernetes on AWS without needing to install and operate Kubernetes masters.  

new_product_ecr

Amazon ECR

Amazon ECR is a highly available and secure private container repository that makes it easy to store and manage Docker container images.

new_product_batch

AWS Batch

AWS Batch enables developers, scientists, and engineers to easily and efficiently run batch computing jobs using containers on AWS.

new_product_docker_cleanwhale

Docker EE provides a platform for enterprise container management and security that is optimized for Amazon EC2 environments

Docker EE is available as a subscription from the AWS Marketplace. Already have a Docker EE license? Launch on AWS with Docker EE Standard.

Get started using Docker

The steps below will get you started using Docker on AWS in minutes!
icon1
Sign up for an AWS Account
Instantly get access to the AWS Free Tier.
icon2
Deploy Docker Containers in 10 minutes
Explore and learn Docker in this simple tutorial

Learn more about containers

Visit the containers page
Ready to build?
Deploy Docker containers
Have more questions?
Contact us