linux - 用于启动运行单控制台应用程序的 docker 容器的 bash 脚本无法以交互模式发送命令

标签 linux docker mono

假设容器名为“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/

相关文章:

c++ - 在 Linux 中创建动态库并使用 Visual Studio Linux Development 链接到它

linux - QEMU和KVM在虚拟机I/O中扮演什么角色?

amazon-web-services - 从 Docker 容器中获取 AWS 实例元数据?

.net - .NET/Mono 性能与 JVM 相比如何?

c# - 如何使用 argv 在 C# 中启动子进程? (或将 agrv 转换为合法的 arg 字符串)

c# - 在服务器上进行 xbuild 编译后无法执行二进制文件

c++ - 如何在 C++ 和 Linux 中将 std::ostream 重定向到文件或/dev/null

c - Makefile:多个目标,一个依赖

postgresql - 如何在Docker中部署Keycloak HA集群

linux - Docker:附加到特定的 bash