17370845950

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

导语

Azure 国际版并未提供纯净的 Windows Server v1903 镜像,我们若需使用 WS1903,只能选择带有容器功能的版本,这默认包含了 Docker。我们可以将其删除。

或许有人会问,卸载软件有什么难的?但这个 Docker 有些特殊。首先,Windows Server v1903 是 Server Core 版本,没有控制面板可供图形化卸载程序,并且在注册表中也找不到 Docker 的卸载参数。经过多次尝试,最终在微软文档的深处找到了正确的卸载方法,让我们一起来看看。

卸载 Docker

首先,需要以管理员权限进入 PowerShell,在 RDP Session 默认提供的 cmd 中输入 powershell 即可。

以下内容摘自微软文档,完全可靠,请放心使用:

准备删除 Docker

在卸载 Docker 之前,请确保系统上没有运行任何容器。

运行以下 cmdlet 检查运行中的容器:

# 离开 swarm 模式(这将自动停止并删除服务和覆盖网络)

docker swarm leave --force

# 停止所有运行中的容器

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:\ProgramData\Docker" -Recurse

此时,Docker 实际上已经删除完毕,如果想删除得更彻底,可以关闭 Windows 的容器功能。

Remove-WindowsFeature Containers

Remove-WindowsFeature Hyper-V

最后,重启系统即可

Restart-Computer -Force

参考文档:https://www./link/bb4ea12f999f3e1c0df45ab2983be5df