How to Manage Containers with Windows Admin Center on Windows Server 2022

Windows Admin Center (WAC) provides a browser-based management interface for Windows Server 2022 that includes container management capabilities through its Containers extension. While the Docker CLI and PowerShell remain the primary tools for container operations in production, WAC offers a visual interface for inspecting container state, managing images, and troubleshooting — particularly useful for administrators who are newer to containers or who need a quick overview across managed servers.

Prerequisites: Docker and Containers on Windows Server 2022

Before WAC can manage containers, Docker must be installed and running on the target Windows Server 2022 host. Install the Docker provider and Docker Engine using PowerShell:

Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
Install-Package -Name docker -ProviderName DockerMsftProvider -Force

Alternatively, on Windows Server 2022, use the newer approach through winget or direct download from Docker’s official source. After installation, start the Docker service and set it to start automatically:

Start-Service docker
Set-Service -Name docker -StartupType Automatic

Verify Docker is running correctly:

docker version
docker info

Also ensure the Windows Containers feature is enabled on the host:

Install-WindowsFeature -Name Containers -IncludeManagementTools

A reboot is required after enabling the Containers feature if it was not previously installed.

Installing the Windows Admin Center Containers Extension

WAC does not include the Containers extension by default — it must be installed separately from the WAC Extension Manager. Open WAC in your browser (typically https://hostname:443 or the port you configured during WAC installation).

Navigate to Settings in the upper-right corner, then select Extensions from the left navigation pane. The Extensions screen shows installed extensions and available extensions from the Microsoft feed. Scroll through the available extensions list until you find “Containers” — it may also appear as “Containers (Preview)” depending on the WAC version. Click Install.

WAC will download and install the extension. After installation completes, refresh the page. The extension is now available from any server connection that has Docker installed and running.

If your WAC instance is in an air-gapped or restricted network environment where the extension feed is not accessible, you can install extensions manually by downloading the .nupkg file from the WAC extension gallery and uploading it via the “Install from file” option in the Extensions settings page.

Connecting WAC to a Container Host

In WAC, add the Windows Server 2022 machine running Docker as a managed server if you have not already done so. From the WAC home screen, click Add then Server connection and enter the server name or IP address. After adding the server, click on it to open the server management view.

In the left navigation pane for the server, scroll down to the Tools section. If the Containers extension is installed and Docker is running on that server, you will see a “Containers” entry in the list. Click it to open the container management interface.

If Containers does not appear in the tools list, verify that Docker is running on the target server. You can check this remotely:

Invoke-Command -ComputerName "ContainerHost01" -ScriptBlock {
    Get-Service docker | Select-Object Status, StartType
}

WAC communicates with the Docker Engine via the Docker named pipe or TCP socket. Ensure the account used to connect to WAC has local administrator rights on the container host.

Viewing Running Containers

The main Containers view in WAC shows all containers on the host, regardless of their state. The interface displays each container’s name, image, status (running, stopped, exited), creation time, port mappings, and the command the container was started with.

Containers are color-coded by state: running containers are highlighted in green, stopped containers are greyed out, and containers in an error state are highlighted in red. This at-a-glance view is useful for a quick health check across all containers on a host.

The WAC container list is equivalent to running this Docker CLI command:

docker ps -a --format "table {{.Names}}t{{.Image}}t{{.Status}}t{{.Ports}}"

You can filter the container list by status using the filter controls at the top of the WAC Containers view. Select “Running” to show only active containers, or “All” to show all containers including stopped ones.

Managing Container Images

The Images tab in the WAC Containers view shows all locally cached Docker images. Each image entry shows the repository name, tag, image ID, creation date, and size on disk.

To pull a new image from a registry, click the Pull button. A dialog box prompts you to enter the image name and tag. For example, to pull the Windows Server Core base image:

mcr.microsoft.com/windows/servercore:ltsc2022

WAC sends the pull request to the Docker Engine on the container host and shows progress in real time. This is equivalent to running:

docker pull mcr.microsoft.com/windows/servercore:ltsc2022

To delete an image from WAC, select it in the Images list and click Delete. WAC will refuse to delete images that are currently in use by one or more containers (including stopped containers). To force-delete an image that has stopped containers referencing it, you must first remove those containers.

To delete an image using the Docker CLI (useful when WAC is not available or the deletion fails through WAC):

docker rmi mcr.microsoft.com/windows/servercore:ltsc2022 --force

To clean up dangling (untagged) images and reclaim disk space — something you cannot do directly through WAC’s current UI:

docker image prune -f

Running Containers from Windows Admin Center

WAC allows you to start new containers from locally available images through the Containers view. Click Run to open the container run dialog, which provides input fields for the most common container configuration options: image name and tag, container name, port mappings (host port to container port), environment variables, and volume mounts.

For example, to run an IIS container using WAC, you would fill in the dialog with the image mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022, container name web-frontend, and a port mapping of host port 80 to container port 80. The equivalent Docker CLI command for this configuration would be:

docker run -d --name web-frontend -p 80:80 mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022

WAC does not expose every Docker run option through its UI. Advanced options like CPU limits, memory limits, network mode, hostname, DNS configuration, and custom entrypoints must be configured via the Docker CLI or Docker Compose. For these scenarios, use:

docker run -d 
    --name app-container 
    --memory 2g 
    --cpus 2 
    --network customnet 
    -e DB_HOST=192.168.1.50 
    -v C:AppData:C:Data 
    -p 8080:80 
    myapp:latest

To start and stop containers from WAC, select a container and use the Start or Stop buttons in the toolbar. These call docker start and docker stop respectively on the backend.

Viewing Container Logs

Container log inspection is one of the most useful features in the WAC Containers extension. Select a running or stopped container from the list and click the Logs button. WAC displays the container’s stdout and stderr output in a scrollable log viewer within the browser interface.

This is equivalent to running:

docker logs container-name --tail 200

WAC’s log viewer auto-refreshes while a container is running, making it useful for watching real-time output. However, it does not support log streaming with the --follow flag in the same interactive way that the CLI does. For live tail of logs, use the Docker CLI directly:

docker logs web-frontend --follow --tail 50

WAC does not support log filtering, searching within logs, or downloading log files through its UI. For containers generating significant log output, the CLI or a log aggregation solution is more appropriate.

Inspecting Container Networking

The WAC Containers view shows port mappings for each container in the container list. Click on a specific container to see the detail pane, which includes network information such as the container’s IP address, port mappings, and the network(s) it is connected to.

This information corresponds to what the Docker inspect command returns:

docker inspect web-frontend --format '{{json .NetworkSettings.Networks}}' | ConvertFrom-Json

To view all Docker networks on the container host — a view not available in WAC’s current extension:

docker network ls
docker network inspect nat

Windows containers use the Host Network Service (HNS) for networking. You can inspect HNS networks using PowerShell for detailed diagnostics beyond what Docker exposes:

Get-HnsNetwork | Select-Object Name, Type, Subnets

If a container is not accessible on its expected port, checking HNS policy lists often reveals the issue:

Get-HnsPolicyList

Container Host Management from WAC

Beyond individual container operations, WAC provides container host-level management. In the Containers view, you can see Docker version information, storage driver details, and the total count of images and containers on the host.

WAC also integrates with the standard Server management views — from the same server connection where you manage containers, you can access CPU and memory usage (Performance Monitor view), event logs (Events view), disk usage (Storage view), and running services (Services view). This makes WAC valuable for correlating container performance issues with underlying host resource utilization.

For example, if a container is consuming unexpectedly high CPU, you can pivot from the Containers view to the Performance view in WAC to see host-level CPU usage breakdown, then use PowerShell to get per-container CPU metrics:

docker stats --no-stream --format "table {{.Container}}t{{.CPUPerc}}t{{.MemUsage}}t{{.NetIO}}"

Configuring Docker from WAC

WAC does not currently provide a graphical UI for modifying Docker daemon configuration. Docker daemon settings on Windows Server 2022 are managed through the daemon.json configuration file:

notepad C:ProgramDatadockerconfigdaemon.json

A typical daemon.json for a production Windows container host configures the log driver, sets a data root on a non-system volume, and enables the Docker API on a TCP port (if remote API access is needed):

{
  "data-root": "D:\docker",
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  },
  "hosts": ["npipe://", "tcp://0.0.0.0:2376"],
  "tlsverify": true,
  "tlscacert": "C:\docker\certs\ca.pem",
  "tlscert": "C:\docker\certs\server-cert.pem",
  "tlskey": "C:\docker\certs\server-key.pem"
}

After modifying daemon.json, restart the Docker service for changes to take effect:

Restart-Service docker

WAC Limitations vs Docker CLI

Understanding what WAC cannot do is as important as knowing what it can do. WAC container management currently lacks: Docker Compose support (no way to deploy multi-container applications), Dockerfile build operations, registry authentication management, network creation and management, volume management, container exec (running commands inside a running container), resource limit configuration (CPU/memory caps), Docker Swarm management, and bulk operations across multiple containers simultaneously.

For container exec (running an interactive shell or one-off command inside a running container), always use the Docker CLI:

docker exec -it web-frontend cmd.exe
docker exec web-frontend powershell -Command "Get-Service"

Troubleshooting Container Issues via WAC

WAC is most useful for initial triage of container issues. A typical troubleshooting workflow:

First, check the container status in the WAC Containers view — is it running, stopped, or in an error state? A container that immediately exits is usually a configuration or application startup error. Check the container logs in WAC by selecting the container and clicking Logs. Look for error messages, missing configuration, or port binding failures.

If the logs show a port binding error, check whether another process is using the port on the host:

netstat -ano | findstr :80

If a container is running but not serving traffic, verify the port mapping is correct in the WAC container detail view, then test connectivity:

Test-NetConnection -ComputerName localhost -Port 80

For container startup failures where the log output is empty or insufficient, inspect the full container configuration to check for missing environment variables or misconfigured volumes:

docker inspect web-frontend

Check the Windows Application and System event logs for Docker-related errors. These are accessible from WAC’s Events tool under the same server connection, or via PowerShell:

Get-EventLog -LogName Application -Source docker -Newest 20 | Select-Object TimeGenerated, EntryType, Message

WAC serves as a useful entry point for container visibility on Windows Server 2022, especially for teams managing a mix of traditional server workloads and containers from a single interface. For production container management, it works best as a complement to Docker CLI and PowerShell scripting rather than a replacement for them.