BoxBoat Blog
Service updates, customer stories, and tips and tricks for effective DevOps
Azure “Cloud Shell” Docker QuickStart Tutorial
by Leon Castellanos | Wednesday, Jun 14, 2017 | Docker Education
Welcome to the BoxBoat QuickStart guide to help get you started with Docker on Azure. Last week we published a Docker QuickStart guide to run NGINX in Docker in less than 5 minutes. If you haven't read that, we highly recommend giving that a quick read.
Let's get an Ubuntu Linux VM with Docker CE running an NGINX container up in Azure using ONLY their “Cloud Shell” feature! This guide assumes that you have a Microsoft Azure account already.
The first thing we need to do is…
Activate Cloud Shell
- Launch Cloud Shell from the top right of the Azure Portal:
- Select a subscription
- Click “Create storage”
- Cloud Shell will appear at the bottom of the Azure Portal:
Next we have to configure our VM to auto-update all packages, install and start Docker CE and allow the “azureuser” to run docker commands…
Create a VM cloud-init config file
- First create a “cloud-init” directory to store the config file in your “clouddrive”:
- Next, using either “vi” or “nano”, create a simple cloud-init config to setup our VM:
Copy and Paste the code below into the file and save it:
#cloud-config
package_upgrade: true
write_files:
- path: /etc/systemd/system/docker.service.d/docker.conf
content: |
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd
- path: /etc/docker/daemon.json
content: |
{
"hosts": ["fd://","tcp://127.0.0.1:2375"]
}
runcmd:
- curl -sSL https://get.docker.com/ | sh
- usermod -aG docker azureuser
Should look like this:
Create the Azure Resources (Resource Group and VM)
- First we need a Resource Group for our VM. We'll call it “Docker_RG”. Run the command:
az group create --name Docker_RG --location eastus
- Now we're going to create our VM using the cloud-init config file we created previously. Run the command:
az vm create --resource-group Docker_RG --name DockerVM --image UbuntuLTS --admin-username azureuser --generate-ssh-keys --custom-data cloud-init-docker.txt
Access the new VM and test Docker
- Get the public IP of your VM and SSH into it:
az vm show --resource-group Docker_RG --name DockerVM -d --query [publicIps] --o tsv
- Then SSH into the VM with the IP returned:
ssh azureuser@ip
- Run some docker commands to test
NGINX
- First we start our NGINX container. From the VM shell run:
docker run -d -p 8080:80 --name nginx nginx
curl http://localhost:8080
- Next we need to allow the port we're going to use externally (8080) and test it again with curl and finally a web-browser. Exit the VM shell, if still in it, and run the command:
az vm open-port --resource-group Docker_RG --name DockerVM --port 8080 --priority 1001
Use url http://[IP]:8080
to test with curl or from a browser:
- To stop the service, SSH into the VM and stop the container. Run the command:
docker stop nginx
That's all there is to getting Docker CE going on Microsoft Azure in a matter of minutes!
If you need any help, feel free to contact us and also check out the services that we offer.