Levvel Blog - Docker UCP Universal Control Plane on AWS

Docker UCP Universal Control Plane on AWS

Docker has been taking the DevOps world by storm over the last couple years. There are many 3rd party technologies that have attempted to provide a rich orchestration, monitoring and deployment strategy focused on Docker containers but we finally have a Docker native tool to unify all of our efforts. Docker Universal Control Plane is an insight and visibility tool that sits on top of Docker Swarm.

Docker containers offer unparalleled capabilities around multi-platform deployment, rapid inception, dense clustering and a true microservices architecture but we need management and oversight tools for the Operations side of the house just as much as the Development side. Universal Control Plane offers an on-premises management solution for Docker apps – regardless of where they run.

Now we can benefit from a scalable, Enterprise Ready solution that is Docker Native, without trying to shoehorn other technologies into a role they aren’t fit for.

Docker UCP:

  1. Integrates with LDAP
  2. Is Highly Available
  3. Deployable On-premises
  4. Supports secure TLS communications
  5. Leverages Docker Swarm and Compose
  6. Provides a Docker native experience for developers and operations

If you haven’t signed up for the BETA, I’d recommend doing so immediately here.

The startup documentation is great and I’m going to show you how to get the Docker UCP controller up and running quickly in AWS.

Installing UCP requires you to pull an image from the Docker Hub. If you don’t already have a Docker Hub account, make sure you create an account. Once you have a Hub account, request access to the UCP BETA program.

The first thing you’ll need to do is log into your AWS Console and go to EC2 Instances.

We’re going to launch the default Amazon Ubuntu image and I’m using __Ubuntu Server 14.04 LTS (HVM), SSD Volume Type – ami-d05e75b8. __

It’s important to note that the t2.micro is too small for this installation and you’ll need at minimum a__ t2.small__ instance.

For this example setup, we’re going to skip over storage and security concerns. I’ve simply opened communications to All Traffic in the Security Groups section but the official list of required ports is:

Port Description
443 UCP controller
2376 Swarm manager
12376 Engine proxy
12379, 12380 Key Value store
12381 Swarm CA service
12382 UCP CA service

Now let’s go ahead and launch the instance. Once that’s ready, the first thing we’ll do is ssh into the instance and find out the Kernel version. $ uname -r

If this returns anything less than 3.16.x, we’re going to need to upgrade the Kernel before moving forward. $ sudo apt-get install linux-image-generic-lts-utopic -y

Then we’ll $ sudo reboot for the changes to take effect and log back in via SSH.

You should now see something like this for $ uname -r ubuntu@ip-172-33-23-109:~$ uname -r 3.16.0-56-generic

Now that our Kernel is upgraded, let’s proceed to install Docker on this instance before installing Docker UCP.

Follow the instructions Docker has provided here to get up to speed and once you can successfully run $ docker or $ sudo docker commands, we can move forward with the Docker UCP installation.

Now we want to edit the docker.list file. Add deb https://apt.dockerproject.org/repo ubuntu-trusty testing to: /etc/apt/sources.list.d/docker.list

Run a $ sudo apt-get upgrade and now we’re ready to install Docker UCP.

Run $ docker run –rm -it \ -v /var/run/docker.sock:/var/run/docker.sock
–name ucp
dockerorca/ucp
install -i

You should see something like:

INFO[0000] Verifying your system is compatible with UCP 
Please choose your initial Orca admin password: 
Confirm your initial password: 
INFO[0009] Pulling required images                      
Please enter your Docker Hub username: denmanjd
Please enter your Docker Hub password: 
Please enter your Docker Hub e-mail address: james.denman@levvel.io
INFO[0021] Pulling required images

Now if you navigate to https://your_public_aws_instance_ip:443 you’ll arrive at the Docker UCP login page. After logging in you should see the health status of your swarm and a GUI of what you’ve been used to accessing on the CLI!!! Amazing, right? You can even launch Docker containers from your DockerHub account. In my previous blogpost, we automated the process from local development, to cloud CI/CD with Travis-CI and and automated push to DockerHub. Now with a click of the button you can deploy that container into Production.

As Docker Partners, we at Levvel are absolutely excited to be on the forefront of uniting Docker and DevOps capabilities in both Startups and Enterprise spaces and we’d love to help you on your journey towards containerization with Docker.

James Denman

VP of Technology

Related Posts