在 docker 内启动 tor
Starting tor inside 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 进程 运行ning。我通过 ps aux
检查
我必须进入容器并 运行 手动命令 service tor start
我做错了什么?
谢谢
正如 Dan Lowe 所说:
RUN service tor start will start tor, write a new image layer, and exit. There's no CMD or ENTRYPOINT so this image, once built, won't start any processes at all.
分两个阶段思考 docker 内容:构建 (Dockerfile) 和 运行(docker 运行 或 docker-组合)。所以在 Dockerfile 中有一条指令告诉 docker 当容器 运行 (CMD) 时对 运行 的命令是什么,其他的 (运行, 等等) 是为了形象建设。
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,您只需要前台进程。
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 进程 运行ning。我通过 ps aux
我必须进入容器并 运行 手动命令 service tor start
我做错了什么?
谢谢
正如 Dan Lowe 所说:
RUN service tor start will start tor, write a new image layer, and exit. There's no CMD or ENTRYPOINT so this image, once built, won't start any processes at all.
分两个阶段思考 docker 内容:构建 (Dockerfile) 和 运行(docker 运行 或 docker-组合)。所以在 Dockerfile 中有一条指令告诉 docker 当容器 运行 (CMD) 时对 运行 的命令是什么,其他的 (运行, 等等) 是为了形象建设。
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,您只需要前台进程。