假设容器名为“dave”,mono 应用程序名为“dummy_app”
容器的 dockerfile:
FROM mono:latest
ADD . /src
EXPOSE 8081
RUN xbuild /src/dummy_app.sln
CMD [ "mono", "/src/dummy_app/bin/Debug/dummy_app.exe" ]
脚本:
echo "Start"
sudo docker start -i dave
echo "debug true"
脚本停在“sudo docker start -i dave”行,因为我假设它等待从容器的标准输入中分离以便继续。因此,“debug true”行不会执行。
在 ssh session 中,我可以看到容器开始启动单声道应用程序,我可以像普通控制台应用程序一样输入命令并获得响应,但我不知道如何将命令从脚本发送到新的附加的容器可以实现相同的目的。
最佳答案
来自 here
Start one or more containers
-a, --attach=false Attach STDOUT/STDERR and forward signals
--help=false Print usage
-i, --interactive=false Attach container's STDIN
您需要删除 -i
标志。
一般来说,对于所有 docker 命令,您可以使用 --help
标志来检查您拥有的选项和默认值。
关于linux - 用于启动运行单控制台应用程序的 docker 容器的 bash 脚本无法以交互模式发送命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34681012/