Bash 如何与Docker上的主管在后台启动muli流程

Bash 如何与Docker上的主管在后台启动muli流程,bash,ubuntu,docker,supervisord,dockerfile,Bash,Ubuntu,Docker,Supervisord,Dockerfile,使用dockerfile,我尝试在后台与主管一起运行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 cl

使用dockerfile,我尝试在后台与主管一起运行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 
[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
我的主管_tor.conf看起来是这样的:

# 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 
[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
我的countainer运行后,我会在bash上看到所有我无法访问的日志

我如何与主管在后台启动2流程


提前谢谢。

我有点不知所措,因为我不明白“我在bash上看到了所有我无法访问的日志”是什么意思

但是,听起来您需要返回bash提示符。如果是这种情况,在启动图像时,只需将
-d
参数指定给
docker run
。如果您想获得另一个shell,只需
docker exec
,例如:

$ docker exec -it mycon bash

谢谢你的回答。实际上,当我用这个命令启动countainer:docker run-I-t id_图像时,我还没有得到bash的“手”,因为主管显示所有信息。是的,所以不要这样做。Do
ID=docker run-d ID\u image
然后
docker exec-it$ID bash
您使用的docker版本是什么?这有什么关系?我使用的是Docker 1.7,但exec现在已经有几个版本了。我只是升级了Docker(因为ubuntu默认为1.1),而命令“Docker exec”不起作用。非常感谢。