AskHandle Blog
How to Deploy a Docker App to AWS?
- Docker
- Container
- AWS

How to Deploy a Docker App to AWS?
Imagine you've built a stunning application using Docker. Now, you want to share it with the world by deploying it to AWS (Amazon Web Services). Sounds intriguing, right? In this guide, we'll walk through the steps to get your Docker app up and running on AWS smoothly. You'll feel like a tech wizard in no time!
Prerequisites
Before we dive into the nuts and bolts, make sure you have these prerequisites in place:
- An AWS Account: If you don't have one, you can create an account at the AWS website.
- Docker Installed: Make sure Docker is installed on your local machine. If not, you can get it from the Docker website.
- AWS CLI Installed: The AWS Command Line Interface should be installed and configured on your system. You can find the installation instructions here.
- An Application to Deploy: Make sure you have a Dockerized app ready to go.
Step 1: Build Your Docker Image
The first task is to create your Docker image. Navigate to your project's root directory and locate your Dockerfile. Execute the following command to build the Docker image:
1docker build -t your-image-name .Make sure to replace your-image-name with a suitable name for your image.
Step 2: Tag Your Docker Image
To push the image to AWS, we need to tag it with the Amazon Elastic Container Registry (ECR) repository. Assume you're using the default region us-east-1 for this example:
1docker tag your-image-name:latest 123456789012.dkr.ecr.us-east-1.amazonaws.com/your-repo-name:latestReplace 123456789012 with your AWS account ID and your-repo-name with the ECR repository name.
Step 3: Log in to Amazon ECR
Log in to your ECR using the AWS CLI. This command authenticates your Docker CLI to access your ECR:
1aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 123456789012.dkr.ecr.us-east-1.amazonaws.comReplace 123456789012 with your AWS account ID.
Step 4: Push Your Docker Image to ECR
Now that you're authenticated, you can push your Docker image to ECR:
1docker push 123456789012.dkr.ecr.us-east-1.amazonaws.com/your-repo-name:latestReplace 123456789012 with your AWS account ID and your-repo-name with the repository name.
Step 5: Launch an EC2 Instance
To run a Docker app on AWS, we can use an EC2 instance. Here are the steps:
- Navigate to the EC2 Dashboard: Log in to your AWS Management Console and navigate to the EC2 dashboard.
- Launch Instance: Click on the "Launch Instance" button.
- Choose an Amazon Machine Image (AMI): Choose an AMI such as "Amazon Linux 2".
- Instance Type: Select a suitable instance type. For simple applications, a t2.micro is often enough.
- Configure Security Group: Make sure to open necessary ports in the security group (e.g., port 80 for HTTP).
Step 6: Connect to Your EC2 Instance
Once your EC2 instance is running, connect to it using SSH:
1ssh -i your-key-file.pem ec2-user@your-ec2-public-dnsReplace your-key-file.pem with the path to your key file and your-ec2-public-dns with the DNS of your running instance.
Step 7: Install Docker on EC2
After logging into your EC2 instance, install Docker by running these commands:
1sudo yum update -y
2sudo amazon-linux-extras install docker
3sudo service docker start
4sudo usermod -a -G docker ec2-userLog out and log back in to apply the Docker group changes:
1exitThen, SSH back into your instance using the same command as before.
Step 8: Pull the Docker Image from ECR
Now, you can pull the Docker image from ECR onto your EC2 instance:
1aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 123456789012.dkr.ecr.us-east-1.amazonaws.com
2docker pull 123456789012.dkr.ecr.us-east-1.amazonaws.com/your-repo-name:latestReplace 123456789012 with your AWS account ID and your-repo-name with the repository name.
Step 9: Run Your Docker Container
To run your Docker container, you can use the following command:
1docker run -d -p 80:80 123456789012.dkr.ecr.us-east-1.amazonaws.com/your-repo-name:latestThis command maps the container's port 80 to the EC2 instance's port 80, making your application accessible via the instance's public DNS.
Congratulations! You've successfully deployed your Docker app to AWS. People around the globe can now access and enjoy your creation. While AWS offers a multitude of services and configurations, these steps should give you a robust starting point for deploying Dockerized applications on AWS. Dive into the AWS documentation to explore additional features and optimizations for your workloads.