docker run -itp 26542:26542 stack/vowpall vw -t -i /home/alex/cb.model --daemon --port 26542
当我运行这个命令时,没有守护进程在监听。当我跑
docker ps
没有进程
但是当我去 docker container bash 并运行时
vw -t -i /home/alex/cb.model --daemon --port 26542
有一个守护进程监听,在 docker ps 中也可见。有任何想法吗?
最佳答案
问题是守护进程正在 fork 到后台,而 Docker 容器只运行它的主进程。当守护进程 fork 到后台时,主进程结束,容器也结束。您只需要保持应用程序在前台运行,这可能只是意味着删除 --daemon
争论。
此外,您只需要 -it
如果你想要一个 shell,你也可以删除它们。如果您想在运行 docker 命令后恢复主机上的 shell,请添加 -d
以便客户端在启动容器后断开连接,例如:
docker run -d p 26542:26542 stack/vowpall vw -t -i /home/alex/cb.model --port 26542
关于bash - 以 "docker run daemon"开头的守护进程不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29513684/