VMware vSphere has long been the dominant platform for server virtualization. In recent years, however, container...
technology has rapidly gained traction in the enterprise, prompting the company to develop its own branded VMware container infrastructure management tools.
Containers are somewhat similar to VMs, but with a few key differences. First, containers don't contain a full operating stack, but rather make use of a base OS that multiple containers share. Second, containers are generally nonpersistent, although there are ways of saving container data. Third, container technology originated in the world of Linux and, therefore, has historically required a completely separate infrastructure and set of management tools from the organization's server virtualization platform.
VMware added container support to vSphere with a feature called vSphere Integrated Containers (VIC) to address this growing interest. VIC integrates containers seamlessly into the vSphere infrastructure, which simplifies container deployment and management for VMware admins.
More importantly, all VIC components are open source, and VMware doesn't require additional licensing beyond what vSphere normally requires.
VMware container management architecture
The VIC architecture has three main components that can be downloaded from GitHub. First, there's the VIC Engine, which is the piece that actually enables the containers to run in a vSphere infrastructure. The second component is VMware Harbor, which is an enterprise-class container registry server.
The third major VIC component is VMware Admiral, which is the management portal for VIC. In the open source world, Docker containers are managed through a nonintuitive command-line interface. VMware Admiral makes it possible to manage containers through a friendlier GUI interface. Admiral is written in Java, and it is used to manage Docker hosts, containers, templates and policies. Admiral also manages low-level components, such as any required certificates.
Although VIC is the most well-known VMware container support offering, the vendor recently partnered with Google and Pivotal to develop Pivotal Container Service, which offers Kubernetes integration.
How to run a Docker container on VMware
Once VIC is installed, use the vSphere Client to access container resources and expose virtual container hosts (VCH) in the console alongside normal vSphere hosts.
The console exposes a Docker API endpoint for each VCH. This endpoint is the connection point that administrators or developers will use to create containers within VCH. Here is an example of what a Docker API endpoint might look like:
To open the Docker environment, all you need to do is open a terminal window and connect to the specified host on the specified port -- the exact method to do this varies depending on the terminal software you use. At this point, it's possible to create and manage containers with all of the normal Docker commands. For example, to create a Docker container, use this command:
Docker run -it <image name>
This command triggers Docker to create a container based on the specified base image. If the base image isn't already cached within the VCH, it will be automatically downloaded from the container registry.