当前位置: 首页 > article >正文

ubuntu 20.04 安装 docker 后遇到的网络问题

问题

安装docker后,无法拉取hello-world镜像,:

$ docker run --rm hello-world
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
See 'docker run --help'.

但我是挂的代理,从浏览器中可以访问docker的仓库

解决过程

curl -v https://registry-1.docker.io/v2/

输出不全,仅有4行,且卡住了,

检查代理是否配置正确:

echo $HTTP_PROXY
echo $HTTPS_PROXY

输出是空的,但我在开启科学上网时会自动修改这个变量,原因是大小写的问题,
在开启科学上网时,会设置:终端通过环境变量设置: export http_proxy=http://127.0.0.1:7890 && export https_proxy=http://127.0.0.1:7890

原因是 环境变量的大小写敏感性。您设置的是小写的 http_proxy 和 https_proxy,而 HTTP_PROXY 和 HTTPS_PROXY 是大写的变量名。

同时设置大写变量
为了兼容某些应用程序(例如 Docker Daemon 或其他工具),您可以同时设置大写和小写的代理变量:

export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890

此时curl -v https://registry-1.docker.io/v2/输出正确,但拉取镜像仍出错:

$ docker run --rm hello-world
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
See 'docker run --help'.

解决办法1

科学上网改为全局代理,可以实现 拉取镜像和 docker search XXX

在改全局代理之前,我还设置了这个,并不清楚有什么影响

确保 Docker Daemon 配置了正确的代理。如果您使用了代理,但未将其应用于 Docker Daemon,则 Docker 无法通过代理访问网络。
配置 Docker Daemon 的代理

创建或编辑代理配置文件:

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf

添加以下内容(替换为您的代理地址和端口):



[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1"

重启 Docker 服务:

bash

sudo systemctl daemon-reload
sudo systemctl restart docker

验证代理设置是否生效:


systemctl show --property=Environment docker

解决办法2

https://www.cnblogs.com/lqqgis/p/18276118
这个教程后面的镜像源改为国内的
可以实现拉取镜像,但 docker search xxx 这个搜索命令无法输出


http://www.kler.cn/a/419971.html

相关文章:

  • SpringBoot集成Kafka和avro和Schema注册表
  • 【手术显微镜】市场高度集中,由于高端手术显微镜的制造技术主要掌握于欧美企业
  • brew安装mongodb和php-mongodb扩展新手教程
  • linux 获取公网流量 tcpdump + python + C++
  • BeanUtils:Java Bean工具类详解
  • 行为型设计模式之《责任链模式》实践
  • 在python中连接elasticsearch
  • 算法训练(leetcode)二刷第三十三天 | *322. 零钱兑换、*279. 完全平方数、*139. 单词拆分
  • 计算机网络 —— HTTP 协议(详解)
  • Matlab实现海洋捕食者优化算法优化随机森林算法模型 (MPA-RF)(附源码)
  • 2024年09月中国电子学会青少年软件编程(Python)等级考试试卷(三级)答案 + 解析
  • 【C++】——红黑树的平衡之道:深入实现与优化
  • 乐橙云小程序插件接入HbuilderX
  • 68 mysql 的 临键锁
  • Unity开发FPS游戏之完结篇
  • RDIFramework.NET CS敏捷开发框架 SOA服务三种访问(直连、WCF、WebAPI)方式
  • Java程序员最新场景面试题总结
  • Brain.js(二):项目集成方式详解——npm、cdn、下载、源码构建
  • 电子电气架构 --- 车载网关GW连接外部IP Tester
  • springboot371高校实习管理系统(论文+源码)_kaic
  • 鸿蒙Next星河版基础用例
  • Leetcode 第425场周赛分析总结
  • 力扣1382:将二叉搜索树便平衡
  • Scala的模式匹配变量类型
  • 方寸 i560 安全存储加密芯片 SoC 存储安全芯片技术手册
  • Ubuntu24.04配置DINO-Tracker