如何在Docker容器中运行后台程序

时间:2019-02-27 11:06:48

标签: docker

我想运行一个容器,但这是一个后台程序(例如:tinyproxy,我将图像设置为tinyproxy_local)


docker run -d tinyproxy_local tinyproxy

这将退出,因为tinyproxy是后台程序。


我可以这样:

docker run -it tinyproxy_local bash
/#: tinyproxy
/#: ctrl+p ctrl+q

这可以运行,但是我希望在重新启动容器时可以自动启动tinyproxy。我测试了:

docker run -d tinyproxy_local tinyproxy && sleep 99999999999

我认为容器在睡眠时可以继续运行,但是不起作用。


如何在docker容器中运行后台程序,重新启动容器后可以自动启动?


或者是否有任何小型的forground程序可以保持容器运行? (我尝试过sleep 99999999,但是没有用)

2 个答案:

答案 0 :(得分:3)

您应该在前台运行docker进程。

我相信使用tinyproxy时,它是-d标志(来源:https://www.mankier.com/8/tinyproxy)。

根据评论进行编辑:

如果入口点运行两个进程-一个应用程序,另一个运行tinyproxy-您应将它们分成两个容器,并使用-d标志在前台运行tinyproxy。另一个信息来源可以是此tinyproxy码头工人。

在每个容器中执行一个流程将为您节省将来的麻烦。

答案 1 :(得分:0)

使用nohup

B