2

附加进程 到远程服务器中Docker容器内 调试 - chester·chen

 2 years ago
source link: https://www.cnblogs.com/chenyishi/p/16544494.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

附加进程 到远程服务器中Docker容器内 调试

很多时候,我们在本地开发过程中程序运行很正常,但是发布到线上之后由于环境的原因,可能会有一些异常。通常我们会通过日志来分析问题,除了日志还有一种常用的调试手段就是:附加进程。

VS中的附加进程非常强大,目前提供了9种常用的附加方式。

1033233-20220802165638921-96141942.png

在当前.Net Core支持跨平台的大背景下,其中Linux环境和Linux Docker的附加显得尤为重要。

那么我们来看看如何附加到远程服务器中的Docker。

1.必要条件

想附加Linux中的Docker容器,必须安装SSH服务器

sudo apt-get install openssh-server unzip curl

2.设置调试选项

在工具->选项->调试中,取消勾选以下选项:

  • 启用“仅我的代码”
  • 要求源文件与原始版本完全匹配
1033233-20220802170243833-230116238.png

 

1033233-20220802170304060-1424105563.png

3.附加进程

选择Docker(Linux容器),并点击查找,配置Linux服务器信息

1033233-20220802170704149-21717074.png

4.选择容器

在列表中选择要附加的容器。并点击附加,弹出选项中选择托管(.NET Core For Unix)

1033233-20220802170815916-58479644.png
1033233-20220802170932224-919174046.png

 5.触发线上逻辑,确认是否能命中断点

通过触发线上业务逻辑,可以看到已经命中了断点

1033233-20220802171257797-1222446565.png

 附加进程到远程服务器中的Docker这种模式,可能用的不多,因为docker的初衷就是:镜像打好之后,一个镜像可以多个地方使用。但是在某些业务场景下,相信这种附加模式也会用到!

C#/.net/.net core QQ群:953553560

o_220321084757_%E5%85%AC%E4%BC%97%E5%8F%B7.png

                

o_220321084403_%E8%A7%86%E9%A2%91%E8%AF%BE%E7%A8%8B.png

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK