在docker

时间:2017-07-15 18:11:44

标签: linux docker docker-compose tor

FROM python:2

RUN echo "deb http://deb.torproject.org/torproject.org jessie main\ndeb-src http://deb.torproject.org/torproject.org jessie main" | tee -a /etc/apt/sources.list
RUN gpg --keyserver keys.gnupg.net --recv A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89
RUN gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | apt-key add -
RUN apt-get update -y
RUN apt-get install -y tor deb.torproject.org-keyring
RUN service tor start

在我通过docker-compose旋转我的容器之后,没有在容器内运行的进程。我通过ps aux

检查

我必须进入容器并手动运行命令service tor start

我在这里做错了什么?

由于

1 个答案:

答案 0 :(得分:2)

Dan Lowe说:

  

RUN服务启动将启动tor,写入新的图像层,然后退出。没有CMD或ENTRYPOINT,所以这个图像一旦建成,就不会启动任何进程。

在两个阶段中考虑docker的东西:构建(Dockerfile)并运行(docker run或docker-compose up)。所以Dockerfile中有一条指令告诉docker什么是容器运行时运行的命令(CMD),其他指令(RUN等)用于图像构建。

FROM python:2

RUN echo "deb http://deb.torproject.org/torproject.org jessie main\ndeb-src http://deb.torproject.org/torproject.org jessie main" | tee -a /etc/apt/sources.list
RUN gpg --keyserver keys.gnupg.net --recv A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89
RUN gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | apt-key add -
RUN apt-get update -y
RUN apt-get install -y tor deb.torproject.org-keyring
CMD tor

不要使用service,使用docker只需要前台进程。