Par*_*dar 7 proxy socks docker
我正在尝试通过 socks5 代理拉取图像。我已经在端口上启动了socks5代理,8888
如下所示:
ssh -NC -D 8888 parham@***.***.**
Run Code Online (Sandbox Code Playgroud)
但是,当我这样运行时docker-compose
,很明显它没有使用环境变量:
$ ALL_PROXY=socks5://127.0.0.1:8888 docker-compose up
Run Code Online (Sandbox Code Playgroud)
如何让 Docker 通过这个代理拉取镜像?
小智 18
看起来这个功能最近被添加到了docker
,特别是在版本中1.11.0
。ALL_PROXY
根据此评论,虽然没有足够的文档说明其用法,但设置环境变量应该有效。
$ export ALL_PROXY=socks5://localhost:port
$ docker pull image
Run Code Online (Sandbox Code Playgroud)
我现在不确定docker-compose
。如果您的主要目标是使用 socks5 加快下载过程,那么您可以通过docker pull
在最终运行docker-compose up
.
错误:
docker-compose up
Pulling web (jitsi/web:stable-6433)...
ERROR: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit
Run Code Online (Sandbox Code Playgroud)
然后设置HTTP_PROXY
,HTTPS_PROXY
这样:
export HTTP_PROXY=socks5://localhost:9040/
export HTTPS_PROXY=socks5://localhost:9040/
Run Code Online (Sandbox Code Playgroud)
结果:
docker-compose up
Pulling web (jitsi/web:stable-6433)...
stable-6433: Pulling from jitsi/web
b380bbd43752: Downloading [===================> ] 10.36MB/27.14MB
0312863d422f: Download complete
503063a74a58: Downloading [============================> ] 7.998MB/14.15MB
392a862abfe3: Download complete
41a073b705ed: Download complete
a8f4844f6941: Download complete
f500f1f2f4ae: Downloading [============> ] 11.69MB/47.56MB
Run Code Online (Sandbox Code Playgroud)
HTTP_PROXY
设置之前和之后的照片:
如果方法 1 不起作用(简单的一种),您可以使用以下方法:
查找配置的 systemd 位置:
systemctl status docker | grep docker.service\;
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Run Code Online (Sandbox Code Playgroud)
对于我的 Debian 9 来说,/lib/systemd/system/docker.service
它的目录是/lib/systemd/system/
So cd
into /lib/systemd/system/
。
mkdir
对于docker.service.d
或:
mkdir docker.service.d && cd !$
Run Code Online (Sandbox Code Playgroud)
在docker.service.d
目录中创建一个.conf
文件,例如:http-proxy.conf
在http-proxy.conf文件中添加这些:
[Service]
Environment="HTTP_PROXY=socks5://localhost:9040"
Environment="HTTPS_PROXY=socks5://localhost:9040"
Run Code Online (Sandbox Code Playgroud)
注意这localhost:9040
是我的,如果您有不同的 IP 或端口,请更新它
因为我们更新了配置运行:
systemctl daemon-reload
Run Code Online (Sandbox Code Playgroud)
然后重启docker服务
systemctl restart docker
Run Code Online (Sandbox Code Playgroud)
现在它已启动并运行: