Setting up Docker Datacenter on VMware Fusion
With the release of Docker Datacenter, it seemed like a good idea to kick the tires on this new system to get a handle on what the experience is like installing, configuring, and managing the new packaged Docker offering. There are a few pre-requisites that you have to get sorted out which include:
- Base system to run Docker Datacenter
- About 30-45 minutes
- Internet access
- Use-cases to try within 30 days
- No previous 30 day trials of Docker Datacenter (it’s a one-time trial)
IMPORTANT NOTE: I use code examples from the install process, but some may alter over time from the Docker Datacenter site. Please use the original code in place of the samples to ensure consistency with the available version.
Make sure you have a system ready to go. In my case, I’m going to use an Ubuntu 15.10 system built with a single NIC on VMware Fusion. The NIC is configured for NAT on Fusion which is the Share with my Max setting:
I’m using 4 GB of RAM and a 40 GB disk set for thin provisioning and to use a single file. Because I often archive my VMs off of the laptop I use, having a single VMDK is easy for moving them around.
Let’s get started with the download and install!
Getting Docker Datacenter
First, you go to the main site for Docker Datacenter to start the process: https://www.docker.com/products/docker-datacenter
You will need your Docker Hub account to log in and attach the license. As you can guess, there is a form to fill out for further contact because this is a commercial product that will have some nurturing to bring you towards purchasing.
Now that we are in step 1, we have to install the Docker Engine. This is done on Ubuntu using the following shell commands, but there’s a catch!!
Notice that the original code says to add
ubuntu-trusty main to the repo source list. Because I’m using 15.10 I updated the real code to say wily instead of trusty:
echo "deb https://packages.docker.com/1.10/apt/repo ubuntu-wily main" | sudo tee /etc/apt/sources.list.d/docker.list
I used the original code from the Docker site in the example here to stay with their instructions:
wget -qO- 'https://pgp.mit.edu/pks/lookup?op=get&search=0xee6d536cf7dc86e2d7d56f59a178ac6c6238f52e' | sudo apt-key add --import
sudo apt-get update && sudo apt-get install apt-transport-https
sudo apt-get install -y linux-image-extra-virtual
echo "deb https://packages.docker.com/1.10/apt/repo ubuntu-trusty main" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt-get update && sudo apt-get install docker-engine
All the updates went according to plan, including a reboot along the way. Once that is done it’s on to step 2.
Installing Docker Trusted Registry
This is a simple step. As we hit the next step in our install, we are ready to deploy the Docker Trusted Registry (DTR) and Universal Control Plane (UCP).
This is done with a nifty one-liner:
sudo bash -c "$(sudo docker run docker/trusted-registry install)”
The console will show that the DTR can’t be found locally in the container image cache, so it will start the download the images. This may take a little while depending on your network speed:
Once that’s done, just open up a browser and go to the https instance on the virtual machine. There will be a warning about the site being insecure which is true because the certificate is not trusted based on the URL you are accessing. No worries though, this is the early part of the configuration.
The launch screen will come up and as if by magic you are starting your first configuration steps:
You can see that there are some errors highlighted on the right-hand side of the window. These are because of:
- No domain set up – accessed the site by IP address
- Unlicensed instance – you have to request in the next steps
- Authentication – default is set up with no authentication at all
Because security should be first on our mind, let’s set up authentication by clicking on the Settings menu option and then the Auth submenu. This brings us to the drop list where you can choose your authentication type:
For my example, I’m going to go with a Managed authentication using a local database. I’m going to create a discoposse user with full access:
As soon as you save the admin user, you will be logged out of the environment and be forced to login again:
Now we have removed one of the configuration errors listed at the main page. Next step is to get our demo instance licensed. Because you signed up at the start of the process, you have had the trial license added to your Docker Hub account.
Go to https://hub.docker.com with your log in used to request the trial, click on your account icon in the upper right and go to Settings menu. From there click on Licenses and then click the download icon in the trial section at the bottom left:
Head back to your Docker Datacenter instance and upload the docker_subscription.lic on the Settings menu in the License submenu:
Once you’ve set the file to upload, click on Save and Restart button.
You will be brought back to the same page after the restart. The License ID section will be populated with a string of characters now that the trial license is applied.
Our last configuration step is to set up the domain name. Go to the Settings section and the click the General submenu. Set the Domain Name option to a fully qualified domain name that you have configured in your DNS.
The security admin inside me wants to configure a whole bunch of other goodness here with the certificates. In this case. we are going to just scroll down and click the Save and Restart button.
Welcome to your Docker Datacenter!
Now that we have configure the minimum settings to use DTR in your Docker Datacenter, we are ready to log in using the new configuration. Go to your new URL as set on the General settings page. In my case, I chose dtr.discoposse.com and will be prompted to log in with my admin credentials as set in the first steps.
This is just the start line of our journey. Next up we will be installing the UCP (Universal Control Plane), and our upcoming blogs will cover a few different things we can do using our newly configured Docker Datacenter. We love learning the possibilities!