The Basics
From an infrastructure perspective, one of the most important aspects of a docker environment is, that applications can be run without the need of the overhead of an operating system. Furthermore containers be bundled in a single docker application.
Single host deployment
The following steps introduces to run portrait on single virtual machine and focuses on VMware ESXi - other hypervisor scenarios will work in the same fashion.
Prerequisites
For this article you will need the following setup:
ESXi 6.7 (with “Update 3” Patch or higher)
Photon OS
Photon OS
Photon OS™ is an open source, minimal Linux container host that is optimized for cloud-native applications, cloud platforms, and VMware infrastructure. Due to ARM64 support it will also work in Edge and IoT environments. By minimizing the number of packages, focusing on security, and providing advanced lifecycle management, Photon OS delivers just enough of a Linux operating system to efficiently run containers on VMware vSphere, Microsoft Azure, Google Compute Engine, and Amazon Elastic Compute Cloud.
The OS is indeed lightweight and comes as “minimal” configuration as 400MB package.
Download Photon OS
Photon OS can be either downloaded as ISO or as OVA. In this tutorial we use OVA, because that’s the fastest way to get up and running.
Download OVA with virtual hardware v13 (UEFI Secure Boot) to your local computer from here: https://github.com/vmware/photon/wiki/Downloading-Photon-OS#downloading-photon-os-30-ga
There is no need to upload the ova manually to the datastore, this will be done in the next step.
Install Photon OS
Log on to your ESXi web client and create a new VM:
In the wizard choose “Deploy a virtual machine from an OVF or OVA file”:
Name the new machine and select the file for upload from your local computer:
In step 3 you choose the location of your new VM, accept the license agreement in step 4 and choose deployment settings in step 5:
Finish the wizard in step 6 with a click on “Finish”:
Depending on your connection to the hypervisor, the upload will take a while.
The machine will start and the first login is done with user “root” and password “changeme”:
Password policy is quite strict, so several tries will be needed.
Setup docker
Inside the machine execute the following commands:
systemctl start docker systemctl enable docker
The last command will run the service on each startup.
Setup docker-compose
curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
Install dependencies
Due to its minimalistic approach, we will need some extra packages installed
yum -y install wget yum -y install unzip
Setup Portrait
From here it’s basically following the setup procedure for portrait: See Install Portrait.