Windows 10环境下如何配置VS Code连接远程Docker?
我来帮你搞定这个问题——因为Hyper-V和VMware的兼容性冲突没法同时运行本地Docker,咱们直接把VS Code连接到Unix虚拟机里的Docker服务就行,全程分两大步操作:
一、先让Unix虚拟机里的Docker允许远程访问
默认情况下,Docker只监听本地的Unix Socket,不会对外暴露API,所以得先修改配置让它接受远程连接:
编辑Docker的systemd服务配置:
打开终端,用文本编辑器(比如nano)修改Docker的服务文件:sudo nano /lib/systemd/system/docker.service找到
ExecStart这一行,把它修改成下面这样(保留原有的参数,加上TCP监听的配置):ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock这里
-H tcp://0.0.0.0:2375表示让Docker监听所有网卡的2375端口,-H unix:///var/run/docker.sock保留本地Socket访问,不影响虚拟机里直接用Docker命令。重启Docker服务让配置生效:
sudo systemctl daemon-reload sudo systemctl restart docker验证远程API是否开启:
在虚拟机里运行下面的命令,如果返回Docker的版本信息,说明配置成功:curl http://localhost:2375/version开放虚拟机防火墙的2375端口:
根据你虚拟机的系统来操作:- 如果你用的是Ubuntu/Debian:
sudo ufw allow 2375 - 如果你用的是CentOS/RHEL:
sudo firewall-cmd --add-port=2375/tcp --permanent sudo firewall-cmd --reload
- 如果你用的是Ubuntu/Debian:
二、配置VS Code连接远程Docker
现在虚拟机的Docker已经能被远程访问了,接下来配置VS Code:
安装VS Code的Docker扩展:
打开VS Code,在扩展商店搜索「Docker」,安装官方的Docker扩展(由Microsoft发布的那个)。配置远程Docker主机地址:
有两种方式,选一种就行:- 通过VS Code设置配置:
打开VS Code的设置(快捷键Ctrl+,),搜索「docker.host」,然后把值设置为tcp://<你的虚拟机IP>:2375,比如你的虚拟机IP是192.168.1.105,就填tcp://192.168.1.105:2375。 - 通过Windows环境变量配置:
打开Windows的「系统属性」→「高级」→「环境变量」,在系统变量里新增一个变量:- 变量名:
DOCKER_HOST - 变量值:
tcp://<你的虚拟机IP>:2375
配置完后重启VS Code,Docker扩展会自动读取这个环境变量。
- 变量名:
- 通过VS Code设置配置:
验证连接是否成功:
打开VS Code左侧的Docker面板,你应该能看到远程虚拟机里的Docker镜像、容器、卷等内容;也可以打开VS Code的终端,运行docker ps命令,如果能列出虚拟机里的容器(哪怕是空的),就说明连接完全没问题了。
一些额外的注意事项
- 安全提示:上面用的是未加密的2375端口,只适合本地开发环境用;如果是生产环境,一定要用TLS加密的2376端口,避免被未授权访问。
- 固定虚拟机IP:建议给你的Unix虚拟机设置静态IP,不然每次虚拟机重启IP变化,还要重新修改VS Code的配置。
- VMware网络模式:如果虚拟机用的是NAT模式,确保宿主机能ping通虚拟机的IP;如果是桥接模式,虚拟机和宿主机在同一局域网,直接用虚拟机的局域网IP就行。
内容的提问来源于stack exchange,提问作者Enrico Hartwig

