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
我在这里做错了什么?
由于
答案 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只需要前台进程。