赞
踩
我们可以通过在容器内远程连接宿主机,然后对宿主机进行操作。
apt-get update //更新一下
apt-get -y install sshpass //安装
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
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
注意: 要先安装 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(); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。