Я пытаюсь отправить docker команды, используя Java Runtime. Такие команды, как docker cp
, очень хорошо работают с описанным ниже методом, а также вводят текст непосредственно с терминала.
Первая проблема заключается в том, что команда docker exec
работает только с терминала, а не с Java Runtime. Другие docker команды, такие как docker cp
, работают как положено. Единственная проблема заключается в том, что я не могу запускать команды для контейнера, такие как отображение на терминале контейнера.
Также 2-ая проблема заключается в том, что метод System.out.println(...)
в методе ниже, на самом деле ничего не печатает.
private static void runCommand() throws IOException, InterruptedException {
Process proc = Runtime.getRuntime().exec(
new String[]{"/bin/sh",
"-c",
"docker exec -u 0 -it <CONTAINER_NAME> echo", "'abc'"});
BufferedReader reader =
new BufferedReader(new InputStreamReader(proc.getInputStream()));
String line = "";
while ((line = reader.readLine()) != null) {
System.out.print(line + "\n");
}
proc.waitFor();
}