以 "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
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