我自己一直都是用以下方式给 docker daemon 加代理:假如本地 http 代理地址是 127.0.0.1:1082 ,则修改文件 /etc/systemd/system/multi-user.target.wants/docker.service
(不同系统可能位置不一样):
...
[Service]
Type=notify
# 注意下面两行
Environment="HTTP_PROXY=http://127.0.0.1:1082"
Environment="HTTPS_PROXY=http://127.0.0.1:1082"
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
...
这样用了很久一直没什么问题,因此对镜像站也没什么需求。但最近看到好多自建 docker 镜像站的帖子,却少有看到推荐这个方法的。比较好奇有什么场景是 docker daemon proxy 所无法解决的吗?
1
xiri 163 天前
服务器等环境没有代理
|
2
qinxi 163 天前
本地当然没问题了, 都能上 V 站了, 肯定都会翻了. 问题时有些地方没有代理, 也不能使用.
|
3
TabGre 163 天前 via iPhone
我通过 docker 搭的 clash 一直过不去
|
4
caola 163 天前
我本地是用代理,但其他地方还真不方便使用代理, 然后就弄过两种方式:一种是反代镜像(不缓存),还有一种就是在防火墙上弄一下端口转发,再设置一上 hosts 指向
|
5
mohumohu 163 天前
这样有个小问题好像是容器启动之后会用到这个环境变量,不该走代理的程序可能走了代理
|
6
cdlnls 163 天前 via Android
这个方法我也一直在用,不过不是加的环境变量,改的 dockerd 启动参数,可以指定 --https-proxy ,效果一样。
|
7
totoro625 163 天前
用镜像而不是部署代理的原因是:
1. 腾讯云、阿里云曾经检测到代理软件的存在直接封机器(甚至不论你是否运行) 2. 机器不是自己独享的,梯子账户是自己的 3. 批量部署麻烦,不能每个机器都配置代理 4. 梯子也有成本 |
8
Gldwolf 163 天前
|
9
Gldwolf 163 天前
@Gldwolf v23.0 及以后版本也可以这么配置 daemon proxy, ref: https://docs.docker.com/config/daemon/systemd/
|