以 "docker run daemon" 启动的守护进程不工作

Daemon started with "docker run daemon" is not working

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

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

docker ps 

没有进程 但是当我去 docker 容器 bash 和 运行

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

有一个守护进程在监听,在 docker ps 中也可见。有什么想法吗?

问题是守护进程正在分叉到后台,Docker 容器只在其主进程运行时运行。当守护进程分叉到后台时,主进程结束,容器也结束。您只需要将应用程序 运行 保留在前台,这可能只是意味着删除 --daemon 参数。

此外,如果您想要 shell,则只需要 -it 个参数,因此您也可以删除它们。如果你想在 运行 docker 命令之后在你的主机上恢复 shell,添加 -d 以便客户端在启动容器后断开连接,例如:

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