棒的外贸网站建设,百度网首页官网登录,自己做微信电影网站怎么做,企业网站备案申请1方案描述 在 docker 容器中想操作宿主机#xff0c;一般会使用 ssh 的方式#xff0c;然后 .Net 通过执行远程 ssh 指令来操作宿主机。本文将使用 交互式 .Net 容器版 中提供的镜像演示 .Net 在容器中如何操作宿主机。2前期准备 1. 宿主机上生成 ssh key生成 ss… 1方案描述 在 docker 容器中想操作宿主机一般会使用 ssh 的方式然后 .Net 通过执行远程 ssh 指令来操作宿主机。本文将使用 交互式 .Net 容器版 中提供的镜像演示 .Net 在容器中如何操作宿主机。2前期准备 1. 宿主机上生成 ssh key生成 ssh keyssh-keygen -t rsa -b 4096把 public key 加入到 authorized_keyscat /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys2. 启动容器启动容器并把 private key 挂载到容器中docker run --name dotnet-interactive -d -v /root/.ssh/id_rsa:/root/.ssh/id_rsa -p 80:8888 dotnet-interactive:1.0.0
docker ps3. 安装 ssh client打开网页并进入 Terminal安装 ssh client# 更新源
apt-get update -y# 安装 ssh client
apt-get install openssh-client -y检查 ssh client 安装情况ssh --help3操作演示 1. 指令获取容器主机名hostname2. 指令获取宿主机主机名ssh -q -o StrictHostKeyCheckingno -o UserKnownHostsFile/dev/null -o PasswordAuthenticationno -i /root/.ssh/id_rsa {user}{nodeIp} hostname3. .Net 获取容器主机名using System.Diagnostics;public string ExecuteCommand(string command)
{var escapedArgs command.Replace(\, \\\);var process new Process{StartInfo new ProcessStartInfo{FileName /bin/bash,Arguments $-c \{escapedArgs}\,RedirectStandardOutput true,RedirectStandardError true,UseShellExecute false,CreateNoWindow true}};process.Start();process.WaitForExit();var message process.StandardOutput.ReadToEnd();message process.StandardOutput.ReadToEnd();return message;
}var hostname ExecuteCommand(hostname);
hostname4. .Net 获取宿主机主机名public string ExecuteCommandSSH(string ip, string rootUser, string command)
{var script $ssh -q -o \StrictHostKeyChecking no\ -o \UserKnownHostsFile/dev/null\ -i /keys/{ip}/sshkey/id_rsa \{rootUser}{ip}\ \{command}\;return ExecuteCommand(script);
}var hostname2 ExecuteCommandSSH(10.0.0.2, root, hostname);
hostname24参考总结 以上就是本文希望分享的内容如果大家有什么问题欢迎在公众号 - 跬步之巅留言交流。