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