Container Facts

Container Facts

Play this article

When you deploy a container on a Windows system, you create an isolated environment where you can run applications and make configuration changes without affecting the host Windows system.

Before you can create and run containers, you must install the Containers feature on the host server. This feature modifies the Windows Server operating system such that a new layer called the Content Management layer is added to the system architecture. With this feature installed, applications running on the server can be isolated within a container. Containers have the following characteristics:

  • Each container shares key components with the host Windows server operating system, including the Windows kernel and the registry.

  • Applications running within a container have a degree of isolation from the rest of the system.

  • Any changes made from within the container to the Windows configuration, file system, or registry are isolated from the host operating system and other containers running on the same system.

The following table discusses container advantages:

Advantage

Description

Portability

Containers are highly portable. If you move a container from one host to another, all of the changes necessary for the applications running within the container to work correctly are moved with it. Moving a container to a new host does not impact on the host operating system.

Disposability

Containers are disposable. When you're done with a container, you can delete it. Removing the container has no impact on host server configuration.

Licensing

Containers use operating system licenses more efficiently. Because containers leverage the installed host operating system, you do not need to license them.

You can deploy two types of containers:

Type

Description

Windows Server Containers

A Windows Server container isolates applications on the same container host. Each container has its own view of the host system, including the kernel, processes, file systems, registry, and other system components.

Hyper-V Containers

Hyper-V containers are based on the hardware-assisted virtualization provided by the Hyper-V hypervisor. Using hardware-assisted virtualization, Hyper-V containers create a highly isolated environment. To implement Hyper-V containers, you must install both the Hyper-V role and the Containers feature on the same system.A Hyper-V container host can run either Windows Server or Hyper-V containers.

Before you deploy the Containers feature on a Windows server, you need to determine which version of Windows you need to support within the containers you will deploy on the host. This decision is dependent upon two factors:

  • Which version of Windows Server the container host is running

  • Which type of containers the container host must support (either Windows Server or Hyper-V)

Because a container and its host share the same operating system kernel, the container's base image must match that of the container host. If the versions are mismatched, it won't run reliably. The following table provides an overview of the options available based on these two factors:

Host Operating System

Windows Server Containers

Hyper-V Containers

Windows Server 2016 Desktop Experience

Supports Server Core and Nano Server.

Supports Server Core and Nano Server.

Windows Server 2016 Server Core

Supports Server Core and Nano Server.

Supports Server Core and Nano Server.

Nano Server

Supports Nano Server.

Supports Server Core and Nano Server.

Windows 10 Professional or Enterprise

Does not support any Windows Server containers.

Supports Server Core and Nano Server.

Currently, the Docker product is required to deploy and manage containers on a container host.

Microsoft has indicated that it will release a container PowerShell module at some point in the future. When this happens, the Docker product may no longer be required.

The Docker product is composed of three components:

  • The Docker service (dockerd.exe), which runs on the container host

  • The Docker command line utility (docker.exe), which is used from the command line of the container host to deploy and manage containers

  • The Docker Hub, a cloud-based repository from which you can download container base images (as well as upload your own images)

To implement Docker on the container host, you must:

  • Manually download the Docker zip file.

  • Extract the Docker zip file to the container host's file system.

  • Register the Docker service on the container host.

  • Start the Docker service on the container host.

  • Configure the Docker service to automatically start every time the container host boots.

The following table lists several commonly used Docker commands:

Command

Description

docker version

Displays version information for the Docker utility, or client, and the Docker service.

docker info

Displays information about containers deployed on the container host.

docker run <container_image>

Checks to see if the container image specified in the command already exists on the container host.If the image already exists, Docker creates a new container instance from the image and runs it.If the image does not exist, Docker will:Contact the Docker Hub and automatically download the image.Create a new container from the image.Run the new container.

docker ps

Displays information about all the containers currently running on the container host.


I hope you find it useful, let me know your thoughts on this in the comments. If you have any issues or questions about it, feel free to contact me. Thank you 🌟 for reading! like, share and subscribe to my newsletter for more! 💖

🔗Debasish Lenka

Did you find this article valuable?

Support Debasish Lenka by becoming a sponsor. Any amount is appreciated!