您的位置:

如何用Docker运行Windows环境

一、Docker简介

Docker是一种现代化的技术,它可以帮助开发人员在不同的环境中构建、测试和部署应用程序。它通过容器技术,将应用程序和所需的依赖项打包成一个独立的、可运行的软件包。

当运行Docker容器时,它会创建一个隔离的环境,其中应用程序可以自行运行而不会受到主机上其他应用程序的影响。这使得Docker容器比虚拟机更轻量、更灵活。

二、Windows容器和Hyper-V容器

Docker针对不同的应用场景提供了两种不同的容器类型:Windows容器和Hyper-V容器。在Windows Server 2016中引入了这两个概念。

Windows容器是一种被设计用来托管Windows应用程序的轻量级容器,它共享相同的内核空间。这使得它能够在短时间内启动,从而提高了应用程序的响应性能。

Hyper-V容器是在Hyper-V虚拟机中运行的容器,它提供了更高的安全度和隔离性,但相对来说更消耗CPU和内存资源。

三、如何启用Windows容器支持

为了能够在Windows上运行Docker,你需要首先安装Docker引擎和Docker CLI。

要安装Docker引擎,可以在Docker官网上下载适用于Windows的Docker安装程序(https://www.docker.com/products/docker-desktop)。

在安装完成之后,需要在系统中启用Windows容器。请按下Win + R键,输入"OptionalFeatures.exe"打开Windows功能,然后勾选“容器”和“Hyper-V”选项进行安装。


# 允许运行Hyper-V容器
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
#启用Windows容器功能
Enable-WindowsOptionalFeature -Online -FeatureName Containers –All

四、如何构建Windows容器映像

构建Windows容器映像的过程与构建Linux容器映像类似。你需要创建一个Dockerfile,然后运行Docker build命令。下面是一个简单的示例:


# Dockerfile

FROM mcr.microsoft.com/windows/servercore:ltsc2019

RUN powershell -Command \
    Add-WindowsFeature Web-Server; \
    Invoke-WebRequest -uri https://github.com/PowerShell/PowerShell/releases/download/v6.2.2/PowerShell-6.2.2-win-x64.zip -OutFile C:\PowerShell.zip; \
    Expand-Archive C:\PowerShell.zip -DestinationPath C:\; \
    Rename-Item C:\PowerShell-6.2.2-win-x64 C:\PowerShell

CMD powershell

上面的Dockerfile基于Windows Server Core镜像(ltsc2019标签)。它在映像中安装了IIS Web服务器和PowerShell,并且将PowerShell设置为默认CMD命令。

五、如何运行Windows容器

运行Windows容器很简单,只需要使用Docker run命令即可。如果要运行一个交互式的容器,可以指定-ti选项。


# 运行交互式容器
docker run -ti my-container

如果需要向容器中传递命令参数,可以在Docker run命令中指定。


# 向容器中传递命令参数
docker run my-container powershell.exe -File C:\hello.ps1

六、结论

Docker提供了一种简单、灵活、可移植的方式来构建、部署和运行应用程序。在Windows上运行Docker容器也变得越来越流行,它可以帮助开发人员轻松地构建Windows应用程序,并在不同的环境中快速部署。如果你还没有尝试过,在Windows上运行Docker容器,那么现在就是时候了。