如何在Windows Server 2019上运行Docker容器
在本教程中,我们将研究如何配置Windows Server 2019以运行Docker容器。 Docker改变了应用程序容器化以及整个微服务设计和部署模式,改变了游戏规则。 Docker使构建,运送和运行包含应用程序及其依赖关系的镜像变得容易,并避免了使用虚拟机时常见的疯狂依赖关系问题。
Docker引擎是为Docker容器提供动力的工具。它最初是为Linux编写的,但是为了使Windows和macOS用户能够运行Docker容器,已经做了很多工作。
准备工作是Windows服务器的安装。它可以在内部运行的虚拟机,物理服务器部署或者在Azure中运行的云实例上。
如何在Windows Server 2019上运行Docker容器
在使用Windows容器运行系统中的多个独立应用程序之前,我们需要启用容器功能并在Windows Server 2019上安装Docker。
在Windows Server 2019中启用容器功能
第一步是启用Windows Server 2019容器功能。以管理员身份打开PowerShell。
运行以下命令。
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
这将从PowerShell Gallery安装Docker-Microsoft PackageManagement Provider。
示例输出如下所示:
在Windows Server 2019上安装Docker
在Windows Server 2019上启用容器功能后,通过在PowerShell会话中运行以下命令来安装最新的Docker Engine和客户端。
Install-Package -Name docker -ProviderName DockerMsftProvider
使用是或者Y或者A同意所有安装,同意安装。
安装完成后,重新启动计算机。
Restart-Computer -Force
可以使用以下方法检查已安装的Docker版本:
Administrator> Get-Package -Name Docker -ProviderName DockerMsftProvider Name Version Source ProviderName ---- ------- ------ ----------- docker 18.09.2 DockerDefault DockerMsftProvider
使用docker --version命令可以达到同样的效果。
PS C:\Users\Administrator> docker version Client: Version: 18.09.2 API version: 1.39 Go version: go1.10.6 Git commit: 1ac774dfdd Built: unknown-buildtime OS/Arch: windows/amd64 Experimental: false error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.39/version: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error Jan also indicate that the docker daemon is not running.
通过在PowerShell上运行以下命令,可以随时完成升级。
Install-Package -Name Docker -ProviderName DockerMsftProvider -Update -Force Start-Service Docker
第三步:运行Docker Container
启动Docker Daemon
Start-Service Docker
启动Docker Engine服务后,从Docker Hub注册表中下载预先创建的.NET示例图像:
docker pull microsoft/dotnet-samples:dotnetapp-nanoserver-1809
然后部署一个运行.Net Hello World应用程序的简单容器。
docker run microsoft/dotnet-samples:dotnetapp-nanoserver-1809
容器将启动,打印问候世界消息,然后退出。
在Windows Server 2019上运行Linux容器
开箱即用,Windows上的Docker仅运行Windows容器。要在Windows Server上使用Linux容器,我们需要使用Docker Enterprise Edition Preview,其中包括一个用于运行Docker Linux容器的完整LinuxKit系统。
卸载当前的Docker CE。
Uninstall-Package -Name docker -ProviderName DockerMSFTProvider
如果我们使用在Hyper-V上运行的Linux虚拟机运行Docker容器,请启用嵌套虚拟化。
Get-VM WinContainerHost | Set-VMProcessor -ExposeVirtualizationExtensions $true
然后安装当前的Docker EE预览版本。
Install-Module DockerProvider Install-Package Docker -ProviderName DockerProvider -RequiredVersion preview
启用LinuxKit系统以运行Linux容器
[Environment]::SetEnvironmentVariable("LCOW_SUPPORTED", "1", "Machine")
更改后重新启动Docker服务。
Restart-Service docker
拉一个测试泊坞窗镜像。
> docker run -it --rm ubuntu /bin/bash theitroad@localhost:/# cat /etc/os-release NAME="Ubuntu" VERSION="18.04.1 LTS (Bionic Beaver)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 18.04.1 LTS" VERSION_ID="18.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=bionic UBUNTU_CODENAME=bionic theitroad@localhost:/# exit exit
要切换回正在运行的Windows容器,请运行:
[Environment]::SetEnvironmentVariable("LCOW_SUPPORTED", "$null", "Machine")