如何使用Visual Studio在远程Docker服务器上调试带Docker支持的.NET Core项目
配置Visual Studio 2017将.NET Core 2.0应用部署到远程Docker服务器
我刚好折腾过几乎一模一样的场景,给你整理了一步步的实操配置方法,完美适配你的VS2017 Enterprise和.NET Core 2.0环境:
1. 先确保远程Docker服务器可被访问
首先得让你的Windows 10开发机能连上远程Docker服务器,这一步是基础:
- 如果远程是Windows Docker服务器:
打开Docker Desktop设置,切换到「Daemon」标签页(VS2017对应的Docker版本偏旧,这个标签位置不会变),勾选「Expose daemon on tcp://localhost:2375 without TLS」(测试环境可以先跳过TLS,生产环境一定要配置TLS加密),然后重启Docker服务。同时要在远程服务器的防火墙里开放2375端口。 - 如果远程是Linux Docker服务器:
修改/etc/docker/daemon.json配置文件,添加以下内容:
保存后重启Docker服务({ "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"] }systemctl restart docker),同样开放服务器防火墙的2375端口。
2. 在Visual Studio 2017中配置远程Docker连接
打开VS后,按以下步骤操作:
- 点击顶部菜单栏的「Tools」→「Options」;
- 在弹出的窗口里找到「Container Tools」→「Docker Daemon」;
- 选择「Remote」选项卡,输入远程Docker服务器的地址,格式是
tcp://<远程服务器IP>:2375; - 点击「Apply」→「OK」,VS会自动测试连接,成功的话你就能在VS的「Docker」窗口里看到远程服务器的容器和镜像列表了。
3. 配置项目的远程部署/调试设置
接下来调整项目的发布或调试配置,让VS直接操作远程Docker:
方式一:通过Publish发布到远程Docker
- 右键你的.NET Core项目,选择「Publish」;
- 在发布目标里选择「Docker Container Registry」,点击「Next」;
- 选择「Custom」作为目标类型,然后在「Server URL」里填入远程Docker地址
tcp://<远程服务器IP>:2375; - 填写镜像名称(比如
mycoreapp:v1),点击「Finish」; - 最后点击「Publish」按钮,VS会自动完成镜像构建、推送并在远程服务器创建启动容器。
方式二:配置调试时直接用远程Docker
如果想直接F5调试远程容器:
- 右键项目→「Properties」→切换到「Debug」标签页;
- 在「Launch」下拉菜单里选择「Docker」;
- 在下方的「Docker」区域,选择「Remote Docker」,并确认远程服务器地址已经正确填入;
- 保存设置后按F5,VS会自动在远程Docker服务器上创建调试容器,你就能像调试本地容器一样调试远程应用了。
4. 注意事项
- 确保远程Docker服务器的版本和VS2017的Container Tools兼容(VS2017对Docker的最低版本要求是17.06以上,尽量匹配版本避免兼容性问题);
- .NET Core 2.0的基础镜像(比如
mcr.microsoft.com/dotnet/core/aspnet:2.0)要能被远程Docker服务器拉取,或者你可以先手动推送到远程服务器; - 如果是生产环境,一定要配置TLS加密连接(用2376端口),避免Docker API被非法访问;
- 如果远程是Windows Docker服务器,要确保你的Dockerfile里使用的基础镜像OS版本和远程服务器一致(比如远程是Windows Server 2016,就不能用Windows Server 2019的镜像)。
内容的提问来源于stack exchange,提问作者Norcino
相关产品推荐
相关产品推荐

