使用WSL下的Ubuntu 20.04部署docker后,无法启动容器,提示错误:

Error response from daemon: OCI runtime create failed: container_linux.go:367: starting container process caused: process_linux.go:352: getting the final child's pid from pipe caused: EOF: unknown
Error: failed to start containers: elegant_panini

这个错误主要是因为WSL的版本导致的,只需要将WSL升级到WSL2即可,操作步骤如下:

步骤1 - 检查运行 WSL 2 的要求

若要更新到 WSL 2,需要运行 Windows 10。

  • 对于 x64 系统:版本 1903 或更高版本,采用 内部版本 18362 或更高版本。
  • 对于 ARM64 系统:版本 2004 或更高版本,采用 内部版本 19041 或更高版本。
  • 低于 18362 的版本不支持 WSL 2。 使用 Windows Update 助手更新 Windows 版本。

若要检查 Windows 版本及内部版本号,选择 Windows 徽标键 + R,然后键入“winver”,选择“确定”。 (或者在 Windows 命令提示符下输入 ver 命令)。 更新到“设置”菜单中的最新 Windows 版本。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U7ZzYNUn-1640327338025)(http://www.linuxer.org/wp-content/uploads/2021/06/wp_editor_md_9b01184b30aa1c43da8af01a885e1a5f.jpg)]

步骤 2 - 启用虚拟机功能

安装 WSL 2 之前,必须启用“虚拟机平台”可选功能。 计算机需要虚拟化功能才能使用此功能。

以管理员身份打开 PowerShell 并运行:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

重新启动 计算机,以完成 WSL 安装并更新到 WSL 2。

步骤 3 - 下载 Linux 内核更新包

1、下载最新内核更新包

  • 适用于 x64 计算机的 WSL2 Linux 内核更新包https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
  • 如果使用的是 ARM64 计算机,请下载 ARM64 包(https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_arm64.msi)。 如果不确定自己计算机的类型,请打开命令提示符或 PowerShell,并输入:systeminfo | find "System Type"

2、运行上一步中下载的更新包

步骤 4 - 将 WSL 2 设置为默认版本

打开 PowerShell,然后在安装新的 Linux 发行版时运行以下命令,将 WSL 2 设置为默认版本:

wsl --set-default-version 2

步骤 5- 安装所选的 Linux 分发

打开 Microsoft Store,并选择你偏好的 Linux 分发版。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mvbPRP79-1640327338026)(http://www.linuxer.org/wp-content/uploads/2021/06/wp_editor_md_e600bf0b655b342cc65893c22a3ddf6b.jpg)]

在安装Docker并启动容器,已经解决问题。如果已经下载了Ubuntu子系统,请卸载后重新下载。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐