luci-app-dockerman
luci-app-dockerman copied to clipboard
docker daemon 代理使用
因为最近拉不下来东西, 代理也不走,头大啊 而且最后的错误永远是官方镜像源的错误
大佬在吗? 为啥代理怎么都不走,我配置deason.json也没用,配置手动创建一个 目录 也没用, 配置 shell 环境变量的不走, 但是我opkg update是走代理的,我能看到流量数据
各种配置都用过了不行
/etc/systemd/system/docker.service.d# dockerd
unable to configure the Docker daemon with file /etc/docker/daemon.json: the following directives don't match any configuration option: https, http
加default节点也不行
在 /etc/systemd/system/docker.service.d/http-proxy.conf配置代理也不行
最后永远都是这个错误,无奈啊,这网络是正常的,代理就是不走
GNU nano 7.2 http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://192.168.2.54:1079"
Environment="HTTPS_PROXY=http://192.168.2.54:1079"
#Environment="NO_PROXY="localhost,127.0.0.1,::1"
root@OpenWrt:/etc/systemd/system/docker.service.d# docker --version
Docker version 24.0.5, build ced0996
root@OpenWrt:/etc/systemd/system/docker.service.d# dockerd --version
Docker version 20.10.17, build a89b842
root@OpenWrt:/etc/systemd/system/docker.service.d#
镜像也是废的,虽然识别/etc/docker/daemon.json但是不走,一直是这个错误
{
"registry-mirrors": [ "https://registry.docker-cn.com"],
"proxies": {
"http": "http://your-proxy-server:proxy-port",
"https": "http://your-proxy-server:proxy-port"
}
}
或者
{
"registry-mirrors": [ "https://registry.docker-cn.com"],
"proxies": {
"default":{
"http": "http://your-proxy-server:proxy-port",
"https": "http://your-proxy-server:proxy-port"
}
}
dockerd 运行 提示 /etc/systemd/system/docker.service.d# dockerd unable to configure the Docker daemon with file /etc/docker/daemon.json: the following directives don't match any configuration option: https, http
/etc/systemd/system/docker.service.d# dockerd unable to configure the Docker daemon with file /etc/docker/daemon.json: the following directives don't match any configuration option: default
我也尝试过在无root下配置cd ~/.config/systemd/user/docker.service.d 配置 http-proy.conf依然不走代理。
他应该需要的是http代理,你的代理正确吗
代理百分百正确 ,在shell里面配置正常的,但是 不走, 我尝试过网上各种docker配置代理方法也搞不定
这代表linux shell是正常的,
@lisaac
你现在是改了 proxy 后 dockerd 启动出问题?还是启动没问题,无法生效?
docker启动正常呀,就是永远都拉取不了 东西呀,这变成离线版本了
用的openwrt是 OpenWrt R23.3.3 GDQ V1[2023] Compiled by eSir / LuCI Master (git-23.082.27304-adda8b2)
docker镜像内容器是有网的,我特意整了一个 http 访问的传递baidu.com容器内就会自动返回baidu的结果
Quote re
用不用代理都是一样的错误。。 代理到底应该怎么配置,目前 配置到daemon提示不支持的配置
你可能需要安装文档来操作:https://docs.docker.com/engine/reference/commandline/dockerd/#proxy-configuration 另外dockerd 版本23 以下只支持环境变量方式
https://docs.docker.com/config/daemon/systemd/#httphttps-proxy
大佬,我这个怎么升级呢,还是说不能升级呀 openwrt
我就是用的使用环境变量(HTTP_PROXY、HTTPS_PROXY和NO_PROXY)。 也就是 linux shell,上面的图已经证明了, shell工作中。 高版本的配置又不生效
这个luci-app-dockerman会生成daemon.json,在/tmp/dockerd/daemon.json,你改默认的/etc/docker/daemon.json没用,启动时会使用--config-file指定tmp目录下的那个daemon.json,看/etc/init.d/dockerd里面的启动脚本发现,process_configuration里面他会判断/etc/config/dockerd配置文件是否存在,不存在则使用默认的(/etc/docker/daemon.json),所以为了让dockerd使用我们的daemon.json,把/etc/config/dockerd删掉或者备份到另一个位置,那么启动时会使用/etc/config/daemon.json,在/etc/cofnig/daemon.json里面指定
"proxies": {
"http-proxy": "http://example.com:8848",
"https-proxy": "http://example.com:8848",
"no-proxy": "127.0.0.0/8"
},
才会生效
建议luci-app-dockerman提供配置代理的选项
可以在/etc/config/dockerd配置alt_config_file为自己的daemon.json文件 config globals 'globals' *** option alt_config_file '/etc/docker/daemon.json' ***
亲测有效,修改 /etc/init.d/dockerd 使用 procd_set_param env 设置环境变量,添加如下两行:
# set proxy
procd_set_param env HTTP_PROXY=http://192.168.0.1:7890
procd_set_param env HTTPS_PROXY=http://192.168.0.1:7890
此处修改成你自己的代理ip和端口
原脚本
start_service() {
local nofile=$(cat /proc/sys/fs/nr_open)
process_config
procd_open_instance
procd_set_param stderr 1
if [ -z "${DOCKERD_CONF}" ]; then
procd_set_param command /usr/bin/dockerd
else
procd_set_param command /usr/bin/dockerd --config-file="${DOCKERD_CONF}"
fi
procd_set_param limits nofile="${nofile} ${nofile}"
procd_close_instance
}
新脚本
start_service() {
local nofile=$(cat /proc/sys/fs/nr_open)
process_config
procd_open_instance
# set proxy
procd_set_param env HTTP_PROXY=http://192.168.0.1:7890
procd_set_param env HTTPS_PROXY=http://192.168.0.1:7890
procd_set_param stderr 1
if [ -z "${DOCKERD_CONF}" ]; then
procd_set_param command /usr/bin/dockerd
else
procd_set_param command /usr/bin/dockerd --config-file="${DOCKERD_CONF}"
fi
procd_set_param limits nofile="${nofile} ${nofile}"
procd_close_instance
}
换个思路把官方镜像源添加到走规则列表里代理列表 #docker docker.com docker.io hub.docker.com registry-1.docker.io index.docker.io registry.hub.docker.com auth.docker.io registry.docker.io