Windows怎么WSL2配置Docker_Windows如何在WSL2发行版中直接使用Docker命令【教程】-1

如果您已在Windows上安装Docker Desktop并启用WSL 2集成,但无法在Ubuntu等WSL发行版终端中直接执行docker命令,则可能是WSL发行版未启用Docker Desktop的WSL集成或Docker CLI未正确暴露。以下是解决此问题的步骤:

一、确认Docker Desktop已启用WSL集成

该步骤确保Docker Desktop将Docker守护进程通过Unix域套接字暴露给WSL发行版,并允许WSL内直接调用docker命令。

1、启动Docker Desktop,等待右下角托盘图标显示为绿色且状态为“Docker Engine running”。

2、右键点击托盘图标,选择“Settings”。(或从主界面顶部菜单栏点击“Settings”)

3、在左侧导航栏中点击“Resources”,再点击子项“WSL Integration”。

4、在右侧页面中,确保“Enable integration with my default WSL distro”已勾选。

5、向下滚动,找到您正在使用的发行版(例如Ubuntu),将其右侧开关置为ON。

6、点击“Apply & Restart”按钮,等待Docker Desktop重启完成。

二、验证WSL发行版中Docker CLI可用性

该步骤用于确认WSL环境是否已自动获得Docker客户端,并能与Docker Desktop后台服务通信。

1、打开WSL终端(如Ubuntu),输入wsl命令启动对应发行版。

2、执行which docker,应返回/usr/bin/docker或类似路径。

3、执行docker –version,应正常输出版本号(如Docker version 26.0.0)。

4、执行docker info –format ‘{{.OSType}}/{{.Architecture}}’,应返回linux/x86_64。

5、若提示Cannot connect to the Docker daemon,请检查Docker Desktop是否运行中,且WSL Integration已为当前发行版开启。

三、手动配置Docker CLI(当自动集成失效时)

该方法通过符号链接方式将Docker Desktop提供的WSL兼容客户端软链至系统PATH路径,绕过自动集成机制。

1、在WSL终端中执行ls /mnt/wslg/docker-desktop-data/version-pack-data/,确认存在类似docker-desktop-cli的目录。

2、执行sudo mkdir -p /usr/local/bin确保目标目录存在。

3、执行sudo ln -sf /mnt/wslg/docker-desktop-data/version-pack-data/docker-desktop-cli/docker /usr/local/bin/docker。

4、执行sudo chmod +x /usr/local/bin/docker赋予可执行权限。

5、执行hash -r刷新命令哈希缓存,或新开终端窗口。

6、再次运行docker ps,应返回空列表或容器列表,而非连接错误。

四、修复Docker命令权限拒绝错误

该方法解决WSL中执行docker命令时出现permission denied或operation not permitted的问题,通常因WSL文件系统挂载选项限制所致。

1、关闭所有WSL实例:在PowerShell中执行wsl –shutdown。

2、在Windows中打开%USERPROFILE%\AppData\Local\Packages\,定位到您的发行版包名(如CanonicalGroupLimited.UbuntuonWindows_…)。

3、进入其子目录LocalState\wsl.conf,若不存在则新建该文件。

4、向wsl.conf中写入以下内容:

[automount]

options = "metadata,uid=1000,gid=1000,umask=022"

[interop]

enabled = true

5、保存后重新启动WSL:wsl,再测试docker run –rm hello-world。

五、启用Docker Compose V2支持

该步骤确保WSL发行版中docker compose(非docker-compose)命令可用,Docker Desktop默认提供V2实现。

1、在WSL终端中执行docker compose version,若报错“command not found”,说明未启用。

2、执行sudo mkdir -p /usr/libexec/docker/cli-plugins。

3、执行sudo ln -sf /usr/bin/docker-compose /usr/libexec/docker/cli-plugins/docker-compose。

4、若系统无/usr/bin/docker-compose,则需确认Docker Desktop安装时勾选了“Install required Windows components for WSL 2”选项。

5、重启Docker Desktop后,在WSL中再次运行docker compose version,应输出V2版本信息。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。