在docker内部启动tor
·
问题:在docker内部启动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启动容器后,容器内没有运行 Tor 进程。我通过ps aux检查
我必须进入容器并手动运行命令service tor start
我在这里做错了什么?
谢谢
解答
正如 Dan Lowe 所说:
RUN service tor start 会启动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 你只需要前台进程。
更多推荐



所有评论(0)