为什么使用ProcessBuilder运行docker会导致挂起?

我正尝试在使用Java的ProcessBuilder的docker容器中运行一个命令。 但是,它在等待退出代码时挂起。 这是为什么?

ProcessBuilder processBuilder = new ProcessBuilder(Arrays.asList("/usr/bin/docker", "run", "base", "echo", "hello")); Process process = processBuilder.start(); // ... Spin off another thread to collect stdout and stderr int exitCode = process.waitFor(); // <-- HANG 

我可以看到,该过程吐出正确的结果标准输出。 它永远不会返回退出代码。

为什么使用CLI只是API的封装? 最好从java直接使用它。