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

server/2024/12/4 3:40:10/

问题

安装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.ppmy.cn/server/147182.html

相关文章

MySQL安装部署

安装 MySQL 官方 YUM 仓库: [rootlocalhost ~]# wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm --2024-12-02 16:14:09-- https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm Resolving dev.mysql.com (dev.my…

【数据结构实战篇】用C语言实现你的私有队列

🏝️专栏:【数据结构实战篇】 🌅主页:f狐o狸x 在前面的文章中我们用C语言实现了栈的数据结构,本期内容我们将实现队列的数据结构 一、队列的概念 队列:只允许在一端进行插入数据操作,在另一端…

Linux 进程管理之struct task_struct

文章目录 前言一、任务 ID二、信号处理三、任务状态四、进程调度五、运行统计信息六、进程亲缘关系七、进程权限八、内存管理九、文件与文件系统十、进程栈10.1 用户态函数栈10.2 内核态函数栈 参考资料 前言 进程是一个应用程序运行时刻的实例(从进程的结构看&…

淘宝商品数据获取:Python爬虫技术的应用与实践

引言 随着电子商务的蓬勃发展,淘宝作为中国最大的电商平台之一,拥有海量的商品数据。这些数据对于市场分析、消费者行为研究、商品推荐系统等领域具有极高的价值。然而,如何高效、合法地从淘宝平台获取这些数据,成为了一个技术挑…

Linux vi/vim

Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。 但是目前我们使用比较多的是 vim 编辑器。 vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。 什么是 vim&…

PostgreSQL17官网下载详细教程

PostgreSQL17官网下载详细教程 文章目录 PostgreSQL17官网下载详细教程1. 官网下载地址2. 下载1. 进入下载页2. Download the installer3. Download zip archive 3. 下载后的两种安装文件 1. 官网下载地址 https://www.postgresql.org/download/ 2. 下载 下面以下载Windows下…

【Redis初阶】Zset 有序集合

Hi~!这里是奋斗的明志,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 🌱🌱个人主页:奋斗的明志 🌱🌱所属专栏:Redis 📚本系列文章为个人学习笔…

C#热更原理与HybridCLR

一、Mono的诞生 在Mono之前,C#虽然很好,但是只在windows家族平台上使用,就这点C#与Java就无法比。于是微软公司向ECMA申请将C#作为一种标准。在2001年12月,ECMA发布了ECMA-334 C#语言规范。C#在2003年成为一个ISO标准(ISO/IEC 23270)。意味着只要你遵守CLI(Common Lang…