可以在容器中执行命令,查看到信息
/egrep '^1:.+(docker|lxc|kubepods)' /proc/1/cgroup
那么我们可以通过读取文件的方法,去分析是否在容器中运行。
代码如下
/// <summary>
/// 是否在容器中运行
/// </summary>
/// <returns></returns>
private static async Task<bool> IsRunAtDocker()
{
//egrep '^1:.+(docker|lxc|kubepods)' /proc/1/cgroup
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
if (!System.IO.File.Exists("/proc/1/cgroup"))
return false;
try
{
bool has = false;
using (System.IO.StreamReader stream = System.IO.File.OpenText("/proc/1/cgroup"))
{
while (!stream.EndOfStream)
{
string s = await stream.ReadLineAsync();
string[] ss = s.Split(':');
if (s.Contains("name=systemd"))
{
if (ss[2].Split('/').Contains("docker"))
{
has = true;
break;
}
}
}
}
return has;
}
catch { return false; }
}
else
{
throw new PlatformNotSupportedException($"The current operating system is not supported({nameof(Machine)}).");
}
}
转自:http://Www.CnBlogs.Com/WebEnh/
如果想下次快速找到我,记得点下面的关注哦!
本博客Android APP 下载 |
![]() |
支持我们就给我们点打赏 |
![]() |
支付宝打赏 支付宝扫一扫二维码 |
![]() |
微信打赏 微信扫一扫二维码 |
![]() |
如果想下次快速找到我,记得点下面的关注哦!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
2019-05-27 cshtml 中的 AppState = Context.Application 和 控制器中的 Application 也相等