Skip to content

A lightweight base container image to be used with Windows host process containers

License

Notifications You must be signed in to change notification settings

microsoft/windows-host-process-containers-base-image

Repository files navigation

HostProcess container base image

Overview

This project produces a minimal base image that can be used with HostProcess containers.

This image cannot be used with any other type of Windows container (process isolated, Hyper-V isolated, etc...)

Benefits

Using this image as a base for HostProcess containers has a few advantages over using other base images for Windows containers including:

  • Size - This image is a few KB. Even the smallest official base image (NanoServer) is still a few hundred MB is size.
  • OS compatibility - HostProcess containers do not inherit the same compatibility requirements as Windows server containers and because of this it does not make sense to include all of the runtime / system binaries that make up the different base layers. Using this image allows for a single container image to be used on any Windows Server version which can greatly simplify container build processes.

Usage

Build your container from mcr.microsoft.com/oss/kubernetes/windows-host-process-containers-base-image:v1.0.0.

Dockerfile example

Create hello-world.ps1 with the following content:

Write-output "Hello World!"

and Dockerfile.windows with the following content:

FROM mcr.microsoft.com/oss/kubernetes/windows-host-process-containers-base-image:v1.0.0

ADD hello-world.ps1 .

ENV PATH="C:\Windows\system32;C:\Windows;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;"
ENTRYPOINT ["powershell.exe", "./hello-world.ps1"]

Build with BuildKit

Containers based on this image cannot currently be built with Docker Desktop. Instead use BuildKit or other tools.

Example:

Create a builder

One time step

docker buildx create --name img-builder --use --platform windows/amd64

Build your image

Use the following command to build and push to a container repository

 docker buildx build --platform windows/amd64 --output=type=registry -f {Dockerfile} -t {ImageTag} .

Container Manifests

As mentioned in Benefits above, HostProcess containers can run on any Windows Server version however there is currently logic in containerd to only pull Windows container images if the OSVersion defined in the container manifest matches the OSVersion of the node.

When building container images from this base image it is recommended to not include this image in a manifest-list and also not include any platform information in the manifest for now.

Please see containerd/containerd#7431 for more information.

Licensing

Code is the repository is released under the MIT license.

The container images produced by this repository are distributed under the CC0 license.

About

A lightweight base container image to be used with Windows host process containers

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published