我用它socat
来写入正在运行的docker容器的标准输入。以下代码在Linux上运行良好:
echo "ls" | socat EXEC:"docker attach container_name",pty STDIN &> /dev/null
然而在 macos 上上述方法不起作用。我尝试了各种设置,但还是没能让它工作。
我正在使用以下版本:
$ brew info socat
==> socat: stable 1.8.0.1 (bottled)
我用它socat
来写入正在运行的docker容器的标准输入。以下代码在Linux上运行良好:
echo "ls" | socat EXEC:"docker attach container_name",pty STDIN &> /dev/null
然而在 macos 上上述方法不起作用。我尝试了各种设置,但还是没能让它工作。
我正在使用以下版本:
$ brew info socat
==> socat: stable 1.8.0.1 (bottled)
当 docker connect 尝试写入 PTY 时,它会遇到“坏文件描述符”错误,因为写入端在 MacOS 上未正确设置。
因此你需要:
-
表示标准输入和标准输出。我没有看到获取退出代码的简单方法,一种解决方法是使用标准输出传递它: