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