在群辉中给 Docker 容器设置代理

有时候需要在 Docker 容器中调用一些被墙了的服务,这时就需要给容器设置代理。

步骤1:部署 Clash

在群辉中部署一个 Clash 服务,可以参考 在群辉上解决 Docker Hub 加载不出来的问题 这篇文章,里面有详细介绍。

步骤2:设置 Docker 容器的代理

然后新建一个容器,选择需要的映像。在设置网络这一步,需要选择 host,即和主机共享同一个网络。

image-20230608122659710

使用 host 模式在安全上可能会有一定的风险。我先尝试的是 bridge,这种模式下容器会拥有一个独立的网络空间,我尝试了很多办法都没有成功的让容器访问到主机的 Clash 服务,看网上有人说可以用 iptables 将容器的所有流量转发给 Clash,这个我没有尝试。如果有了解的或者知道其它方法的朋友们,希望能留言指点一下。

下一步到常规设置,在这里选择高级设置,在高级设置的环境选项卡中设置环境变量。

image-20230608123114470

如果是之前已经创建好的容器,也可以随时点击编辑,在里面设置网络和环境变量。

然后启动容器,容器就可以通过本机上的 Clash 代理来访问网络了。