如何卸载 Azure 上的 Windows Server v1903 自带的 docker

2019-08-26 17:19:43 浏览数 (1)

导语

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

0 人点赞