Windows Server 2019安装Docker

说明

安装操作系统

这里为了节省资源,没有选择桌面体验

可以自己根据需求选择对应的操作系统版本

安装Docker

在powershell或者cmd里面运行命令,打开服务器配置界面

1
sconfig.cmd

界面示意图

服务器配置

可以根据需要修改对应的配置,这里只做以下几项

  • 网络设置,配置网络,安装docker需要访问公网
    • 配置IP地址
    • 配置网关
    • 配置DNS

  • Windows 更新设置,安装docker前需要更新Windows
    • 修改为手动更新
    • 选择下载并安装更新
    • 在弹出命令窗口里面选择搜索所有的更新
    • 选择安装所有更新
    • 安装完成之后重启系统

启用Hyper-V和Containers功能

运行管理员权限powershell

1
Install-WindowsFeature -Name Hyper-V,Containers -IncludeAllSubFeature -IncludeManagementTools -Verbose

安装完成之后重启操作系统

配置安装源

运行管理员权限powershell

1
Install-Module -Name DockerMsftProvider -Repository PSGallery -Verbose

安装Docker

运行管理员权限powershell,国内安装可能会因为网络原因失败,可以尝试手动安装

1
Install-Package -Name docker -ProviderName DockerMsftProvider -Verbose

手动安装Docker

运行管理员权限powershell

  • 下载docker压缩包
1
Invoke-WebRequest -UseBasicParsing -OutFile C:\docker-18.09.7.zip https://download.docker.com/components/engine/windows-server/18.09/docker-18.09.7.zip
  • 解压
1
Expand-Archive C:\docker-18.09.7.zip -DestinationPath $Env:ProgramFiles -Force
  • 删除压缩包
1
Remove-Item -Force C:\docker-18.09.7.zip
  • 为当前会话添加PATH变量
1
$env:path += ";$env:ProgramFiles\docker"
  • 配置新的PATH变量
1
$newPath = "$env:ProgramFiles\docker;" + [System.Environment]::GetEnvironmentVariable("PATH", [System.EnvironmentVariableTarget]::Machine)
  • 将系统PATH变量替换为新的PATH变量
1
[System.Environment]::SetEnvironmentVariable("PATH", $newPath, [System.EnvironmentVariableTarget]::Machine)
  • 注册为系统服务
1
dockerd --register-service
  • 设置Docker开机启动
1
Set-Service -Name docker -StartupType Automatic
  • 启动Docker
1
Start-Service docker

验证Docker

1
docker container run hello-world:nanoserver

配置Docker

在微软的官方网站上是有相关文档

配置文件路径

C:\ProgramData\Docker\config\daemon.json

配置文件模板

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"dns": [
"114.114.114.114",
"8.8.8.8"
],
"storage-opts": [
"size=50GB"
],
"data-root": "c:\programdata\docker",
"bridge": "NAT",
"registry-mirrors": [
"https://registry.docker-cn.com"
],
"insecure-registries": [],
"experimental": true
}

启用Linux容器支持

目前Windows的container只支持Windows程序,运行Linux容器需要使用Hyper-V运行容器

参考文献Getting started with Linux Containers on Windows Server 2019