以“docker run daemon”开始的守护进程不起作用

docker run -itp 26542:26542 stack/vowpall vw -t -i /home/alex/cb.model --daemon --port 26542 

当我运行这个命令时,没有守护进程在监听。 当我跑步

 docker ps 

有没有进程,但是当我去泊坞窗容器bash和运行

 vw -t -i /home/alex/cb.model --daemon --port 26542 

有一个守护进程正在监听,在docker ps中也是可见的。 有任何想法吗?

问题是守护进程是分支到后台,并且一个Docker容器只运行它的主进程。 当守护进程分叉到后台时,主进程结束,容器也结束。 您只需要保持应用程序在前台运行,这可能意味着删除--daemon参数。

另外,如果你需要一个shell,你只需要-it参数,所以你可以删除它们。 如果你想在你的主机上运行docker命令后得到shell,添加-d以便客户端在启动容器后断开连接,例如:

 docker run -dp 26542:26542 stack/vowpall vw -t -i /home/alex/cb.model --port 26542