Docker - Cloud

 The Docker Cloud is a service provided by Docker in which you can carry out the following operations −


Nodes − You can connect the Docker Cloud to your existing cloud providers such as Azure and AWS to spin up containers on these environments.


Cloud Repository − Provides a place where you can store your own repositories.


Continuous Integration − Connect with Github and build a continuous integration pipeline.


Application Deployment − Deploy and scale infrastructure and containers.


Continuous Deployment − Can automate deployments.


Getting started

You can go to the following link to getting started with Docker Cloud − https://cloud.docker.com/


Docker Cloud

Once logged in, you will be provided with the following basic interface −


Basic Interface

Connecting to the Cloud Provider

The first step is to connect to an existing cloud provider. The following steps will show you how to connect with an Amazon Cloud provider.


Step 1 − The first step is to ensure that you have the right AWS keys. This can be taken from the aws console. Log into your aws account using the following link − https://aws.amazon.com/console/


AWS Management Console

Step 2 − Once logged in, go to the Security Credentials section. Make a note of the access keys which will be used from Docker Hub.


Security Credentials section

Step 3 − Next, you need to create a policy in aws that will allow Docker to view EC2 instances. Go to the profiles section in aws. Click the Create Policy button.


Create Policy

Step 4 − Click on ‘Create Your Own Policy’ and give the policy name as dockercloudpolicy and the policy definition as shown below.


   "Version": "2012-10-17", 

   "Statement": [ { 

      "Action": [ 

         "ec2:*", 

         "iam:ListInstanceProfiles" 

      ], 

      "Effect": "Allow", 

      "Resource": "*" 

   } ] 

}

Review Policy

Next, click the Create Policy button


Step 5 − Next, you need to create a role which will be used by Docker to spin up nodes on AWS. For this, go to the Roles section in AWS and click the Create New Role option.


Create New Role

Step 6 − Give the name for the role as dockercloud-role.


Next Step

Step 7 − On the next screen, go to ‘Role for Cross Account Access’ and select “Provide access between your account and a 3rd party AWS account".


Select Role Type

Step 8 − On the next screen, enter the following details −


In the Account ID field, enter the ID for the Docker Cloud service: 689684103426.

In the External ID field, enter your Docker Cloud username.

Account External ID

Step 9 − Then, click the Next Step button and on the next screen, attach the policy which was created in the earlier step.


Attach Policy

Step 10 − Finally, on the last screen when the role is created, make sure to copy the arn role which is created.


arn:aws:iam::085363624145:role/dockercloud-role

Create Role Name ARN

Step 11 − Now go back to Docker Cloud, select Cloud Providers, and click the plug symbol next to Amazon Web Services.


Cloud Providers

Enter the arn role and click the Save button.


AWS Credentials

Once saved, the integration with AWS would be complete.


Integration with AWS

Setting Up Nodes

Once the integration with AWS is complete, the next step is to setup a node. Go to the Nodes section in Docker Cloud. Note that the setting up of nodes will automatically setup a node cluster first.


Step 1 − Go to the Nodes section in Docker Cloud.


Nodes Section

Step 2 − Next, you can give the details of the nodes which will be setup in AWS.


Node Clusters Wizard

You can then click the Launch Node cluster which will be present at the bottom of the screen. Once the node is deployed, you will get the notification in the Node Cluster screen.


Actions

Deploying a Service

The next step after deploying a node is to deploy a service. To do this, we need to perform the following steps.


Step 1 − Go to the Services Section in Docker Cloud. Click the Create button


Services Section

Step 2 − Choose the Service which is required. In our case, let’s choose mongo.


Mongo

Step 3 − On the next screen, choose the Create & Deploy option. This will start deploying the Mongo container on your node cluster.


Create Deploy

Once deployed, you will be able to see the container in a running state.


Container in Running State