能否不使用Docker Desktop实现Visual Studio与WSL2上Docker Engine的集成?
无Docker Desktop下Visual Studio对接WSL2 Docker Engine方案
该方案完全可行,无需依赖付费版Docker Desktop即可实现和原Docker Desktop完全一致的容器开发、调试、打包能力,具体配置步骤如下:
1. WSL2侧Docker前置配置
你已经完成了Docker Engine的基础安装,只需补充如下配置即可对接Windows侧Visual Studio:
- 配置当前用户免sudo执行Docker命令,避免后续权限报错:
执行后退出WSL终端重新进入即可生效。sudo usermod -aG docker $USER - 开启Docker TCP监听(仅方案二需要配置):
编辑/etc/docker/daemon.json文件(如果文件不存在则新建),添加如下内容:{ "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"] } - 重启Docker服务让配置生效:
sudo /etc/init.d/docker restart - 校验Docker运行状态:执行
docker ps无报错即为配置正常。
2. Visual Studio侧对接方案(二选一即可)
方案一:WSL远程开发模式(更稳定,优先推荐)
- 先确认Visual Studio 2019已安装「使用C++的Linux开发」和「.NET Core跨平台开发」工作负载,可通过Visual Studio Installer补充安装。
- 打开目标项目后,点击顶部运行按钮旁的下拉选择框,选择WSL 2作为运行目标。
- Visual Studio会自动识别WSL2环境内的Docker Engine,无需额外手动配置即可实现全部容器相关功能。
方案二:Windows侧直连WSL2 Docker
- 配置Windows系统环境变量:新建名为
DOCKER_HOST的系统变量,变量值为tcp://localhost:2375。 - 也可直接在Visual Studio中手动指定:依次打开「工具」→「选项」→「容器工具」→「Docker」,在「Docker 守护进程地址」输入框填入
tcp://localhost:2375。 - 重启Visual Studio后即可识别到WSL2内运行的Docker Engine。
常见异常排查
- 若VS无法识别Docker,先在Windows PowerShell执行
wsl --list --verbose确认目标WSL2 Ubuntu实例处于运行状态。 - 配置了TCP监听的场景下,可执行
telnet localhost 2375确认端口连通性正常。 - 确认WSL2内Docker服务已启动,无端口占用、配置文件语法错误等问题。
内容的提问来源于stack exchange,提问作者Fernando Arce
相关产品推荐
相关产品推荐

