Storing your own Docker image on the cloud with Amazon ECR

Managing container images for cloud deployment

Docker image is like a process template that we run to instantiate our containers. You probably heard of Docker Hub, a public registry that stores Docker images. While we can deploy Docker images from Docker Hub on AWS, we will explore the Amazon Elastic Container Registry (ECR) to store our customized Docker image.


You can create a free account with the AWS free tier to explore this feature. It is necessary to have the following installed on your workstation:

Configuring AWS CLI

To set up your AWS CLI, you need to run the “aws configure” command in your command prompt. This will prompt you for the below information:

  • Access Key ID
  • Secret access key
  • AWS Region — identifies the AWS Region whose servers you want to send your requests to by default
  • Output format — how results are formatted. Possible values are json (default), yaml, yaml-stream, text and table.

Your AWS administrator would have provided you with the Access key ID and secret access key. Otherwise, you can create the access key under the Security credentials tab under your IAM user profile.



Pushing customized Docker image to Amazon ECR

Assuming you have configured your AWS CLI with your AWS access key ID and secret access key, you can push your custom image onto the Amazon ECR.

Follow the steps below to do so:

1 — Search for ECR under AWS services.

2 — Create a repository under the Amazon ECR. In our example, we keep the repository private and name the repository “atoti”.



3 — Select the repository created and click on “View push commands”.

4 — Follow the push commands on the AWS CLI to push the image.


You can access the image on AWS with the image URI highlighted below:



With the image URI, you can deploy the image container anywhere on AWS. For instance, we can define our Docker image in the Task definition of Amazon Elastic Container Service (ECS) using the image URI from our repository in Amazon ECR:



You might also be interested in…

In case you would like to try customizing a Docker image, check out our previous article — A starter kit to dockerize a Business Intelligence Project.


Latest posts

Understanding Logs in Atoti
From the default log to how to configure additional logging Application logs are extremely important in any system! Most commonly, they are used to troubleshoot any issue that users may encounter while using an application. For instance, developers use them for debugging and the production support crew uses them to investigate outages. Not just that, in production, they are used to monitor an application’s performance and health. For instance, monitoring tools can pick up certain keywords to identify events such as “server down” or “system out of memory”. It can also serve as an audit trail to track user activity...
Atoti: Working with dates in Python
What is the most problematic data type you have ever dealt with when working with data? I would say dates! Depending on the locale, dates come in different formats such as YYYY-mm-dd, d/m/YYYY, d-mmm-yy etc. Not to mention, sometimes it comes with timestamps and time zones! We can let programs infer the date format or explicitly cast the data to date with a specific format e.g. in Python with Pandas DataFrame: What if we open the CSV file in Microsoft Excel, update it, and try to read it again? The above code snippet will throw out exceptions such as this:...
Understanding conditional statements in Atoti
When do we use filter, where and switch statements? We know that we can perform aggregations and multi-dimensional analysis with Atoti. Aggregation is not always as simple as 1 + 2. Sometimes we end up in an “if…else” situation, and that is where conditional statements come in. Let’s explore some examples with the XVA use case from the Atoti CE Notebook Gallery. Some definitions before moving on: Measures – we refer to metrics or quantifiable data that measure certain aspects of our goals. In the code snippets below, they are represented by measure[<name of metrics>]. Members of a level –...

Join our Community

    Like this post ? Please share

    Follow Us

    atoti Free Community Edition is developed and brought to you by ActiveViam. Learn more about ActiveViam at