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

运行以下 cmdlet,检查是否有正在运行的容器:

PowerShell

# 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:

PowerShell

docker system prune --volumes --all

卸载 Docker

 

在 Windows Server 上卸载 Docker

从提升的 PowerShell 会话中,使用 Uninstall-PackageUninstall-Module cmdlet 从系统中删除 Docker 模块及其相应的程序包管理提供程序,如以下示例所示:

PowerShell

Uninstall-Package -Name docker -ProviderName DockerMsftProvider
Uninstall-Module -Name DockerMsftProvider

提示

可以查找曾通过 PS C:\> Get-PackageProvider -Name *Docker* 用于安装 Docker 的程序包提供程序

清理 Docker 数据和系统组件

在卸载 Docker 后,需删除 Docker 的默认网络。这样,在卸载 Docker 后,这些网络的配置就不会保留在系统上。 为此,可以运行以下 cmdlet:

PowerShell

Get-HNSNetwork | Remove-HNSNetwork

在 Windows Server 2016 上删除 Docker 的默认网络

PowerShell

Get-ContainerNetwork | Remove-ContainerNetwork

运行以下 cmdlet,从系统中删除 Docker 的程序数据:

PowerShell

Remove-Item "C:\ProgramData\Docker" -Recurse

可能还需要删除 Windows 上与 Docker/容器关联的 Windows 可选功能。

这包括“容器”功能,安装 Docker 时会在任何 Windows 10 或 Windows Server 2016 上自动启用该功能。 这还可能包括“Hyper-V”功能,安装 Docker 时可在 Windows 10 上自动启用该功能,但必须在 Windows Server 2016 上显式启用该功能。

重要

Hyper-V 功能是一种常规虚拟化功能,该功能所启用的远远不止是容器。 禁用 Hyper-V 功能之前,请确保系统上没有其他虚拟化组件需要 Hyper-V。

若要在 Windows 10 上删除 Windows 功能,请执行以下操作:

  • 转到“控制面板” > “程序” > “程序和功能” > “打开或关闭 Windows 功能。
  • 查找想要禁用的一项或多项功能的名称,在本例中为“容器”和(可选)“Hyper-V”。
  • 取消选中要禁用的功能名称旁边的框。
  • 选择“确定”

若要在 Windows Server 2016 上删除 Windows 功能,请执行以下操作:

从提升的 PowerShell 会话中运行以下 cmdlet,禁用系统中的“容器”和(可选)“Hyper-V”功能:

PowerShell

Remove-WindowsFeature Containers
Remove-WindowsFeature Hyper-V

重启系统

若要完成卸载和清理操作,请从提升的 PowerShell 会话运行以下 cmdlet,重启系统:

PowerShell

Restart-Computer -Force
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐