首页 > 其他分享 >openwrt解决docker拉取失败问题

openwrt解决docker拉取失败问题

时间:2024-10-31 16:09:00浏览次数:1  
标签:set procd nofile param 拉取 dockerd docker openwrt

非原创,原文链接:loveyu.org/6115.html

背景:在openwrt上的docker拉取失败,提示如下错误:

root@openwrt:\~ # docker pull debian
Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

尝试的错误解决方法(一顿乱搜,AI极具误导性)

  1. 修改 /etc/docker/daemon.json 无效,还尝试了一下,以为可以,实际乱写的(AI方案)
  2. /etc/systemd/system/docker.service.d/http-proxy.conf 新增配置,一看就不可行,都没有 systemd
  3. 修改 /etc/init.d/dockerd 添加 环境变量(AI方案),解决了一半,设置变量方式错了

最终有效方案

修改 /etc/init.d/dockerd 使用 procd_set_param env 设置环境变量

原脚本

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://xxx.x.x.x.:xxxx
        procd\_set\_param env HTTPS\_PROXY\=http://xxx.x.x.x.:xxxx

        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
}

参考

https://openwrt.org/docs/guide-developer/procd-init-scripts

标签:set,procd,nofile,param,拉取,dockerd,docker,openwrt
From: https://www.cnblogs.com/drcode/p/18518140/openwrt-set-docker-proxy

相关文章

  • Docker+Jenkins:一键自动化部署,让你的项目管理飞跃!
    使用Docker安装Jenkins并实现项目自动化部署是一种高效且便捷的方法。以下是详细的步骤和代码示例,帮助你完成这一过程。一、准备工作安装Docker:确保你的系统已经安装了Docker。如果没有安装,请参考 Docker官方文档进行安装。拉取Jenkins镜像:从DockerHub上拉取Je......
  • autMan奥特曼机器人-对接Docker版本NTQQ详细教程
    准备1、准备一台服务器,amd64/arm64都可以,配置最好还是2核保底吧。2、准备一个VNC软件。1Remote:点此下载3、准备手机登陆机器人QQ号,扫码NTQQ相关NTQQ一键脚本(适用于小白支持autMan/无界)复制以下代码,在服务器发送即可。按照提示步骤输入正确参数,如果出现输错可以自行去......
  • 内网机安装docker
    1)关闭防火墙关闭systemctlstopfirewalld禁止开机启动防火墙systemctldisablefirewalld2).下载docker的安装包:可以直接使用该链接进行下载:https://download.docker.com/linux/static/stable/x86_64/docker-20.10.9.tgz也可访问官网选择匹配自己系统的版本进行下载:I......
  • MongoDB 部署指南:从 Linux 到 Docker 的全面讲解
    一、MongoDB简介MongoDB是一种NoSQL数据库,以文档模型存储数据,具备高性能、弹性扩展性和分布式架构等特点,非常适用于高并发和大数据量的场景。本文将从Linux和Docker环境开始讲解,帮助读者在不同环境下顺利部署MongoDB。二、在Linux(CentOS)上部署MongoDB2.1......
  • 猫头虎分享:2024最新 Docker 国内可用镜像源仓库地址
    ......
  • Docker 如何开启远程访问
    Docker开启远程访问需要确保Docker守护进程(Daemon)配置了适当的监听地址、调整防火墙规则来允许合适的网络访问,并确保了安全性措施,如使用TLS加密。具体步骤包括编辑Docker服务文件、修改启动参数、重新启动服务和设置防火墙规则。首先,要启动Docker的远程访问功能,我们需要修......
  • docker容器安装nacos详解
    ‌Nacos的核心功能‌Nacos是一个动态服务发现、配置管理和服务管理平台,旨在帮助构建云原生应用。它支持服务注册与发现、配置管理、‌服务健康监测等功能,适用于微服务和云原生架构。Nacos提供了友好的‌Web界面和‌API接口,方便用户进行配置管理、服务注册和发现等操作。1.打......
  • Linux Docker 部署 Elasticsearch (ES) 集群详解教程
    1.安装Docker首先,确保你的Linux系统上已经安装了Docker。如果尚未安装,可以通过以下命令进行安装:sudoyuminstall-yyum-utilssudoyum-config-manager--add-repohttps://download.docker.com/linux/centos/docker-ce.reposudoyuminstalldocker-cedocker-ce......
  • docker部署手册(离线)
    文章目录一、下载地址二、部署环境三、安装部署3.1上传安装包3.2解压3.3创建docker.service3.4创建daemon.json文件3.5授权3.6启动3.7查看信息3.8设置开机启动3.9允许远程连接到docker方法一:修改docker.service方法二:修改daemon.json3.10处理报错docker.ser......
  • ubuntu-安装docker、中间件
    1、基本命令#查看ubuntu版本lsb_release-a#修改密码sudopasswdubuntu#修改远程端口vim/etc/ssh/sshd_configsudoservicesshrestart#基础软件安装sudoaptinstalliputils-ping-ysudoaptinstallnet-tools-ysudoaptinstallvim-ysudoaptinstallufw-y 2、......