Tag: jsch

用JSch运行docker命令

我使用JSch来运行一个docker命令,但是它不起作用,它不会返回任何东西。 ChannelExec channel = (ChannelExec) session.openChannel("exec"); BufferedReader in = new BufferedReader(new InputStreamReader(channel.getInputStream())); channel.setCommand("docker ps -a"); channel.connect(); String msg = null; while ((msg = in.readLine()) != null) { System.out.println(msg); } 如果我运行一个bash命令为'pwd'或者'ls -l'可以。 我可以期望docker命令将工作在ChannelExec而不是ChannelShell或任何其他types? session.openChannel("exec") 问候。

在使用JSCH的docker环境中的容器内部连接

我正在开发一个Java应用程序连接(使用SSH)的Linux机器附加docker容器,并发送命令。 现在,我可以连接linux机器,发送命令并读取响应,但是当我尝试附加一个容器并在其中发送命令时,什么也收不到,我也无法发送命令。 我是usinf代码如下。 你能帮我解决这个问题吗? try{ JSch jsch=new JSch(); String host=null; if(arg.length>0){ host=arg[0]; } else{ host=JOptionPane.showInputDialog("Enter username@hostname", "root@10.46.68.147"); } String user=host.substring(0, host.indexOf('@')); host=host.substring(host.indexOf('@')+1); Session session=jsch.getSession(user, host, 22); //Session session=jsch.getSession("root", "10.46.68.147", 4184); // username and password will be given via UserInfo interface. UserInfo ui=new MyUserInfo(); session.setUserInfo(ui); session.connect(); String temp = ""; String all_content = "docker ps -a;docker […]