运行 Docker 命令在 java
Running Docker command in java
我正在尝试通过 java 在 docker 中 运行 这个命令,但我不知道为什么只有当我在主机中执行命令时它才有效,并且不是通过 java(当在 java 上执行时,它不会添加或什么也不说)。我 99% 确定问题是回声的“>>”,但我不知道如何解决它。
private void doCommand(){
String command = "docker exec -i -t vsftpd bash -c 'echo -e \"myuser5\nmypass\" >> /etc/vsftpd/virtual_users.txt'";
try {
ProcessBuilder pb = new ProcessBuilder(command);
Process process = pb.start();
InputStream inputStream = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
}catch (Exception e){
e.printStackTrace();
}
}
修复
我正在尝试通过 java 在 docker 中 运行 这个命令,但我不知道为什么只有当我在主机中执行命令时它才有效,并且不是通过 java(当在 java 上执行时,它不会添加或什么也不说)。我 99% 确定问题是回声的“>>”,但我不知道如何解决它。
private void doCommand(){
String command = "docker exec -i -t vsftpd bash -c 'echo -e \"myuser5\nmypass\" >> /etc/vsftpd/virtual_users.txt'";
try {
ProcessBuilder pb = new ProcessBuilder(command);
Process process = pb.start();
InputStream inputStream = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
}catch (Exception e){
e.printStackTrace();
}
}