让一个 docker 容器在另一个 docker 容器中使用代理 docker-compose
Have a docker container use a proxy inside another docker container with docker-compose
假设我有两个 docker 容器。一个包含 0.0.0.0:PORT
上带有代理的图像。另一个容器需要使用该代理。
澄清一下,我不想在这里使用主机。所以主机上没有 network_mode: host
和 运行 代理。我想将代理和将使用该代理的服务容器化。
我使用 docker-compose 所以如果你能给我提供一个例子,我会很高兴。
如果你需要知道,代理是使用this image的tor代理。
谢谢! (:
我建议使用 bridge
网络模式,这是 docker compose 的默认模式。举个例子:
version: '3.7'
services:
tor:
image: osminogin/tor-simple
restart: always
curl:
image: curlimages/curl
tty: true
stdin_open: true
command: ["sh"]
depends_on:
- tor
在这里你可以看到我们设置了一个 tor-simple
代理和一个 curlimages
显然将用于通过代理向 Tor 网络发送请求。默认情况下 docker compose 将设置一个网络,其中每个容器的主机名将是容器本身的名称,因此 tor
用于代理,curl
用于 curlimage
。
为了证明我们可以使用代理连接到 tor,首先我们使用 docker compose up
启动容器。然后我们可以使用 docker attach <image-id>
附加到 curl 图像,这将给我们一个 shell (command: [sh]
并且 curl
在交互模式下是 运行)
现在,我们应该验证我们的 Tor 连接:
curl --socks5 tor:9050 --socks5-hostname tor:9050 -s https://check.torproject.org/ | cat | grep -m 1 Congratulations | xargs
请注意 curl
将使用端口 9500
(tor:9050
) 连接到 tor-simple
,这会将请求代理到 https://check.torproject.org/
.
这应该打印如下内容:
Congratulations. This browser is configured to use Tor.
假设我有两个 docker 容器。一个包含 0.0.0.0:PORT
上带有代理的图像。另一个容器需要使用该代理。
澄清一下,我不想在这里使用主机。所以主机上没有 network_mode: host
和 运行 代理。我想将代理和将使用该代理的服务容器化。
我使用 docker-compose 所以如果你能给我提供一个例子,我会很高兴。
如果你需要知道,代理是使用this image的tor代理。
谢谢! (:
我建议使用 bridge
网络模式,这是 docker compose 的默认模式。举个例子:
version: '3.7'
services:
tor:
image: osminogin/tor-simple
restart: always
curl:
image: curlimages/curl
tty: true
stdin_open: true
command: ["sh"]
depends_on:
- tor
在这里你可以看到我们设置了一个 tor-simple
代理和一个 curlimages
显然将用于通过代理向 Tor 网络发送请求。默认情况下 docker compose 将设置一个网络,其中每个容器的主机名将是容器本身的名称,因此 tor
用于代理,curl
用于 curlimage
。
为了证明我们可以使用代理连接到 tor,首先我们使用 docker compose up
启动容器。然后我们可以使用 docker attach <image-id>
附加到 curl 图像,这将给我们一个 shell (command: [sh]
并且 curl
在交互模式下是 运行)
现在,我们应该验证我们的 Tor 连接:
curl --socks5 tor:9050 --socks5-hostname tor:9050 -s https://check.torproject.org/ | cat | grep -m 1 Congratulations | xargs
请注意 curl
将使用端口 9500
(tor:9050
) 连接到 tor-simple
,这会将请求代理到 https://check.torproject.org/
.
这应该打印如下内容:
Congratulations. This browser is configured to use Tor.