思路

我们可以通过在容器内远程连接宿主机,然后对宿主机进行操作。

使用 sshpass (我的是CentOS 7.9环境)

1.安装sshpass

apt-get update //更新一下
apt-get -y install sshpass //安装

2.连接宿主机执行命令

 sshpass -p '宿主机用户密码' ssh -o StrictHostKeyChecking=no -p 22 用户名@宿主机ip 命令
 列如:注意:这是在容器中运行的,查出了宿主机的ip配置信息。sshpass -p 'abc@1234' ssh -o StrictHostKeyChecking=no -p 22 tmsceshi@10.73.100.6 ifconfig 

3.连接执行宿主机的脚本

vim hello.sh //在宿主机建一个脚本文件脚本内容
#!/bin/bash
echo "hello woshikunkun"
 注意:这是在容器中运行的,执行了宿主机的脚本。sshpass -p 'abc@1234' ssh -o StrictHostKeyChecking=no -p 22 tmsceshi@10.73.100.6 sh hello.sh

4.当然也可以自动化,比如:java项目部署在docker容器内,然后java项目在某一时刻执行宿主机的脚本或者宿主机的命令

注意: 要先安装 sshpass命令才行。 Dockerfile文件可以在你部署容器的时候自动安装。
docker部署springboot项目


Runtime rt = Runtime.getRuntime();//执行 ifconfig -a 命令,查询宿主机的ip配置
String[] shell = {"/bin/bash", "-c", "sshpass -p 'abc@1234' ssh -o StrictHostKeyChecking=no -p 22 tmsceshi@10.73.100.6 ifconfig -a "};//执行hello.sh 脚本
String[] shell = {"/bin/bash", "-c", "sshpass -p 'abc@1234' ssh -o StrictHostKeyChecking=no -p 22 tmsceshi@10.73.100.6 sh hello.sh "};
Process exec = Runtime.getRuntime().exec(shell);
BufferedReader in = null;
try {in = new BufferedReader(new InputStreamReader(p.getInputStream()));String str = null;String[] strArray = null;//逐一对每行内容进行操作while ((str = in.readLine()) != null) {System.out.println(str);}
} catch (Exception e) {System.out.println(e);
} finally {in.close();
}

【Docker】docker容器内获取宿主机的信息和执行宿主机的脚本相关推荐

  1. java 获取docker ip_docker容器内部获取宿主机ip地址方法以及报错解决

    1,在docker容器内执行以下python代码或根据需要插入到你的.py文件中: import paramiko #通过pip3 install paramiko 安装 s = paramiko.S ...

  2. 带你玩转kubernetes-k8s(第14篇:k8s-深入掌握Pod-在容器内获取Pod信息)

    哈喽~大家好!昨天我们讲解了ConfigMap的使用,今天我来继续深入的讨论Pod的概念及其用法. 现在我们进入正题. Downward API 我们知道,每个Pod在被成功创建出来之后,都会被系统分 ...

  3. docker 嵌套技术 docker outside of docker 可用于一个容器内调用另一个容器内程序 跨容器调用 docker容器内获取自身容器信息

    环境:centos7  docker升级为最新版, docker升级方法参考:<centos7 docker升级到最新稳定版本>centos7 docker升级到最新稳定版本_whatda ...

  4. .Net Core In Docker 在容器内编译并发布

    Docker可以说是现在微服务,DevOps的基础,咱们.Net Core自然也得上Docker..Net Core发布到Docker容器的教程网上也有不少,但是今天还是想来写一写. 你搜.Net c ...

  5. kubernetes 容器内获取Pod信息(包括:宿主主机IP)

    kubernetes 自从1.7开始,可以在pod 的container 内获取pod的spec,metadata 等信息. 具体方法可以通过env获取: env:         - name: M ...

  6. 干货:不同场景容器内获取客户端源IP的方法

    摘要:客户端和容器服务器之间可能存在多种不同形式的代理服务器,那容器中如何获取到客户端真实的源ip呢? k8s已经成为当今容器化的标准,人们在享受容器带来的高效与便利的同时,也遇到一些烦恼:客户端和容 ...

  7. docker修改容器内nginx配置文件

    **要部署一个jar包到客户的服务器上,客户的服务器中部署着nginx.mysql等docker,且配置文件在docker中,宿主机中没有找到.为保护客户原程序不受影响,尽量减少服务器的修改,一点点摸 ...

  8. Android中shell控制cpu,Android app开发中获取cpu arm架构信息及执行shell命令方法

    最近在做一个项目,需要在app开发过程中去判断cpu的arm架构,比如说是armeabi-v7a,或是arm64-v8a. 其实,在adb shell命令下面,可以通过getprop的方式,获取到一些 ...

  9. 【Docker】容器获取宿主机IP和MAC

    将IP和MAC写入环境变量 # 宿主机.bashrc文件 export ip_address=$(ifconfig | grep 'inet .*br' | sed -E 's/.*inet (.*) ...

最新文章

  1. 在DWZ框架中整合kindeditor复文本框控件
  2. 芯片,开源,数学,计算机
  3. Bootstrap全局CSS样式之表单
  4. android显示网络图片控件,Android控件之ImageView(二)
  5. 【C#】隐式类型var
  6. 用友nc的java插件下载,用友nc插件下载|
  7. 细等线体cass_CASS打开图形出现字体替换怎么解决?
  8. 结巴分词python教程_Python笔记:用结巴分词制作词云图
  9. 芭蕉树上第十九根芭蕉-- Qt生成随机数的方法
  10. 事后诸葛亮分析(小小大佬带飞队)
  11. 裸金属服务器能降级虚拟机不,裸金属服务器属于虚拟机吗
  12. 如何使用sizeof获取指针指向数组的长度
  13. 线性代数笔记21——伴随矩阵和克莱姆法则
  14. mysql md 123456_mysql/mysql.md · sdbxpjzq/docs - Gitee.com
  15. 一种加密,解密的思路
  16. 【ML】异常检测、PCA、混淆矩阵、调参综合实践(基于sklearn)
  17. 想进世界顶尖投行 那我该上什么样的学校?
  18. 通过超链接(a标签)和js代码打开链接
  19. android 通讯录备份 导入苹果手机,安卓手机通讯录怎么导入苹果手机? 手机通讯录怎么恢复导出...
  20. 阿里云轻量应用服务器如何快速搭建WordPress个人博客?

热门文章

  1. 对时间序列数据(牛仔裤销售数据集)进行LSTM预测(Matlab代码实现)
  2. dede php语句调用,dede织梦在{dede:php}中调用文章id或aid
  3. Emulation currently requires hardware acceleration
  4. 洞悉2020年数据团队建设,我们和清华、领英一起搞了个大事情,你也可以参与!
  5. CPU飙高的常见场景及处理办法
  6. FBI 花 3 年暴力破解 iPhone X 密码,竟成一场空?法院:搜查令已过期,证据无效...
  7. 批量修改图片名及批量进行图像数据预处理
  8. signature=aa4376301d667fd531515dd1c5804e2c,单位庆典活动对档案工作的启示
  9. 质量小议4:质量管理不是发现问题
  10. 【文档】Decawave-OP-DW1000AoA-Basics