docker里面的起始码

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启动我的容器之后,没有在容器内运行的tor进程。 我通过ps aux检查

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

我在这里做错了什么?

谢谢

正如Dan Lowe所说:

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

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

 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,你只需要前台进程。