导语
Azure 国际版没有提供纯净的 Windows Server v1903 的镜像,我们要用 WS1903 只能选择 with Container 的版,然而它默认带有一个docker,我们可以删除它。
可能有朋友要问了,卸软件有啥难的。但是这个 docker 挺特殊,首先 Windows Server v1903 是 Server Core 的版本,没有控制面板让你用GUI卸程序,并且注册表里也找不到 docker 的卸载参数。尝试了好久,最终在微软文档的深处发现了正确卸载方法,我们来看看。
卸载 Docker
首先还是得进入管理员权限的 PowerShell,在 RDP Session 默认给的cmd里输入 powershell 即可。
以下内容摘自微软文档,没有任何坑,请放心饮用:
为您的系统准备要删除的 Docker
在卸载 Docker 之前, 请确保你的系统上未运行任何容器。
运行以下 cmdlet 检查运行中的容器:
# Leave swarm mode (this will automatically stop and remove services and overlay networks)
docker swarm leave --force
# Stop all running containers
docker ps --quiet | ForEach-Object {docker stop $_}
在删除 Docker 之前, 最好从系统中删除所有容器、容器映像、网络和卷。你可以通过运行以下 cmdlet 来执行此操作:
docker system prune --volumes --all
卸载 Docker
接下来, 你将需要实际卸载 Docker。
从提升的 PowerShell 会话中, 使用卸载程序包和卸载模块cmdlet 从你的系统中删除 Docker 模块及其相应的程序包管理提供程序, 如下例所示:
Uninstall-Package -Name docker -ProviderName DockerMsftProvider
Uninstall-Module -Name DockerMsftProvider
清理 Docker 数据和系统组件
卸载 Docker 后, 你需要删除 Docker 的默认网络, 以便在 Docker 离开后, 其配置不会保留在系统上。你可以通过运行以下 cmdlet 来执行此操作:
Get-HNSNetwork | Remove-HNSNetwork
运行以下 cmdlet 以从你的系统中删除 Docker 的程序数据:
Remove-Item "C:ProgramDataDocker" -Recurse
此时其实 docker 已经删完了,如果想删得更彻底,可以把Windows 的容器功能也关了。
Remove-WindowsFeature Containers
Remove-WindowsFeature Hyper-V
最后重启系统即可
Restart-Computer -Force
参考文档:https://docs.microsoft.com/zh-CN/virtualization/windowscontainers/manage-docker/configure-docker-daemon