如何在Docker上使用supervisor启动muli进程

时间:2015-07-29 16:03:09

标签: bash ubuntu docker supervisord dockerfile

使用我的dockerfile,我尝试使用supervisor在后台运行2个进程(Tor和Polipo)。 我的Dockerfile看起来像这样:

# Pull base image.
FROM ubuntu:latest

# Upgrade system
RUN apt-get update && apt-get dist-upgrade -y --no-install-recommends && apt-get autoremove -y && apt-get clean

# Install TOR
RUN apt-get install -y --no-install-recommends tor tor-geoipdb torsocks && apt-get autoremove -y && apt-get clean

# INSTALL POLIPO
RUN apt-get update && apt-get install -y polipo
# INSTALL SUPERVISOR
RUN apt-get install -y supervisor


# Default ORPort
EXPOSE 9001

# Default DirPort 
EXPOSE 9030

# Default SOCKS5 proxy port 
EXPOSE 9050

# Default ControlPort
EXPOSE 9051
# Default polipo Port
EXPOSE 8123

RUN echo 'socksParentProxy = "localhost:9050"'  >> /etc/polipo/config
RUN echo 'socksProxyType = socks5'  >> /etc/polipo/config
RUN echo 'diskCacheRoot = ""' >> /etc/polipo/config

RUN echo 'ORPort 9001' >> /etc/tor/torrc
RUN echo 'ExitPolicy reject *:*' >> /etc/tor/torrc
ADD supervisor_tor.conf /etc/supervisor/conf.d/tor.conf
CMD /usr/bin/supervisord -n 

我的supervisor_tor.conf看起来像那样:

[group:tor]
programs=polipo,tor

[program:polipo]
command=/usr/bin/polipo -c /etc/polipo/config
autostart=true
autorestart=true

[program:tor]
command=/usr/bin/tor
autostart=true
autorestart=true
redirect_stderr=true

我的计数器运行后,我会看到我无法访问bash的所有日志。

如何在主管的后台启动2个流程?

提前致谢。

1 个答案:

答案 0 :(得分:2)

我有点失落,因为我不明白“我看到我在bash上无法访问的所有日志”的意思。

然而,听起来你问题是你想要你的bash提示回来。如果是这种情况,请在启动图像时将-d参数提供给docker run。如果你想获得另一个shell,只需要docker exec例如:

$ docker exec -it mycon bash