首页 > 其他分享 >国内无法拉取Docker镜像了?这些方法拯救你的Docker

国内无法拉取Docker镜像了?这些方法拯救你的Docker

时间:2024-09-02 16:04:59浏览次数:10  
标签:拉取 https 镜像 Docker com docker 图片

国内无法拉取Docker镜像了?这些方法拯救你的Docker
数学中国 2024年08月25日 21:14 内蒙古
以下文章来源于星哥说事 ,作者星哥说事

各大高校以及容器技术社区,由于众所周不知的原因, 纷纷关闭多个镜像加速站点。

这极大地影响了工作效率和开发进度。面对这一困境,本文将为你介绍几种有效的解决方案,帮助你顺利拉取Docker镜像,继续你的开发工作。

图片
今天就介绍几个方法让拯救你的Docker

方法1: 某些云镜像加速

方法2: 使用Docker Hub并将镜像推送到阿里云自有仓库

方法3:使用Github Action 构建docker镜像

方法4: 部署DockerHub的代理

方法5: 镜像仓库前缀替换

图片
一、某些云镜像加速
这里某些云包括但不限于国内的几大云,阿里云、腾讯云、华为云,使用的方法都大同小异,这里介绍华为云的用户

镜像加速不可用
腾讯云镜像加速器地址:https://mirror.ccs.tencentyun.com

中国科学技术大学:https://docker.mirrors.ustc.edu.cn

Docker官方镜像(中国区)镜像加速:https://registry.docker-cn.com

网易云镜像加速器地址:http://hub-mirror.c.163.com

南京大学镜像加速器地址:https://docker.nju.edu.cn

镜像加速可用镜像源
阿里云镜像加速器地址:https://XXXXX.mirror.aliyuncs.com

华为云的镜像加速地址:XXX.mirror.swr.myhuaweicloud.com

Daocloud 镜像加速器地址:https://docker.m.daocloud.io

华为云镜像加速
进入华为云搜索“容器镜像服务”或者 "SWR" ,进入控制台

点击 “镜像资源”---> “镜像中心”---> "镜像加速器"

图片
操作说明

安装/升级容器引擎客户端
推荐安装1.11.2以上版本的容器引擎客户端

配置镜像加速器
针对容器引擎客户端版本大于 1.11.2 的用户 以root用户登录容器引擎所在的虚拟机

修改“/etc/docker/daemon.json”文件(如果没有,可以手动创建),在该文件内添加如下内容:

vi /etc/docker/daemon.json

{
"registry-mirrors": [ "https://你的地址.mirror.swr.myhuaweicloud.com" ]
}

按“Esc”,输入:wq保存并退出。
重启容器引擎
配置完成后,执行systemctl restart docker重启容器引擎。 如果重启失败,则检查操作系统其他位置

(如:/etc/sysconfig/docker、/etc/default/docker)是否配置了registry-mirrors参数,删除此参数并重启容器引擎即可。

确认配置结果
执行docker info,当Registry Mirrors字段的地址为加速器的地址时,说明加速器已经配置成功。

阿里云镜像加速
https://cr.console.aliyun.com/

图片
镜像加速器
点击"镜像工具"--->镜像加速器

图片
二、使用Docker Hub并将镜像推送到自有仓库
之前写过一篇文章: https://mp.weixin.qq.com/s/OrcBrtrZRwie3Q8eYVfl-A

画个图说明:

图片
当然也可以打包下载到本地

docker save busybox > busybox.tar
docker load < busybox.tar
三、使用Github Action 构建docker镜像
前置条件
1.可以访问Github,国内环境github时而抽风体质,如果没有科学环境也可以使用 https://github.com/521xueweihan/GitHub520 +SwitchHosts 基本还是可以使用的(有的话就当我没说)。

2.有个github账号

3.免费版Action 每天能使用1小时,每个月33小时(基本上够用)。

参考博主悟空的日常:使用Github Action 构建docker镜像 http://wkdaily.cpolar.cn/archives/gc

1.要有一个github账号
没有账号就需要注册一个。

https://github.com

2.fork项目DockerTarBuilder
fork 叉子叉到自己的仓库中: https://github.com/wukongdaily/DockerTarBuilder

图片
3.点击 Actions
点击Actions选项卡,再点击同意

图片
选择平台,再填入镜像名

图片
4.下载镜像
点击 All workflows

图片
图片
5.解压恢复镜像
将下载好的压缩包上传到docker宿主机上。

解压

unzip docker-images-tar.zip

Archive: docker-images-tar.zip
inflating: x86-64-images.tar.gz
再解压:

tar -zxvf x86-64-images.tar.gz

ls -lh alpine:latest-amd64.tar

-rw------- 1 mysql 127 7.8M 7月 4 16:57 alpine:latest-amd64.tar

导入

docker load < alpine:latest-amd64.tar

导入成功。

docker images

REPOSITORY TAG IMAGE ID CREATED SIZE
alpine latest a606584aa9aa 13 days ago 7.8 MB
四、部署DockerHub的代理
1.前置条件
有个github账号

有个cloudflare账号

2.访问并fork如下项目到自己的仓库
https://github.com/cmliu/CF-Workers-docker.io

3.部署到cf的pages服务中
3.1登录cloudflare并点击Worker和Pages
点击 “Worker和Pages”再点 概述

点击 “点击pages”再点 “连接到Git”

图片
3.2 点击pages
连接GitHub

图片
容易登录之后

3.3 选择刚才fork的仓库
图片
点击 保存并部署

构建和部署

图片
继续处理项目

图片
4.访问并记录刚才部署的代理网站
部署成功,点击访问站点。

图片
5.自定义域名
这步不是必须

因为cloudflare提供的域名太长不利于记忆,可以使用自有的域名,解析

我这里配置的域名 dockerhub.xgss.net 再域名解析过来

图片
图片

ping dockerhub.xgss.net

PING cf-workers-docker-io-1wu.pages.dev (172.66.47.123) 56(84) bytes of data.
64 bytes from 172.66.47.123 (172.66.47.123): icmp_seq=1 ttl=53 time=988 ms
64 bytes from 172.66.47.123 (172.66.47.123): icmp_seq=2 ttl=53 time=996 ms
6.修改配置文件
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://docker.fxxk.dedyn.io"] # 请替换为您自己的Worker自定义域名
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
五、镜像仓库前缀替换
如果由于网络限制,你无法直接访问某些镜像仓库,还可以尝试通过修改镜像仓库前缀来拉取镜像。一些国内的服务商提供了镜像仓库的镜像服务,你可以将原有的仓库前缀替换为对应的国内服务商的前缀。

例如,将docker.io替换为docker.m.daocloud.io等。这种方法虽然可能不是所有镜像都适用,但能解决一部分镜像拉取问题。

https://github.com/DaoCloud/public-image-mirror?tab=readme-ov-file#使用方法

总结
以上就是拯救你的Docker 几种方法,希望本文介绍的这些方法能够帮助到你,让你的Docker之旅更加顺畅无阻。

标签:拉取,https,镜像,Docker,com,docker,图片
From: https://www.cnblogs.com/cerofang/p/18392863

相关文章

  • 腾讯云服务器上线一个springboot+vue项目最全教程 非Docker 自带上传到gitee中的项目
    前言博主看网络上的各种介绍项目上线的视频/文章,要么不是真实项目上线,要么没有良好的引导,要么不全。因此就写了此博客。此博客应该是最全的了,全面地以一个项目来介绍如何上线。即使你是小白看完博客也能让你成为糕手糕手糕糕手......
  • git 拉取远程仓库指定分支
    1.查看远程仓库所有分支gitfetchgitbranch-r2.追踪远程分支假设要追踪远程的origin/feature-branch·创建本地分支并追踪远程分支gitcheckout-bfeature-branchorigin/feature-branch·或者,在一个已经存在的本地分支内设置追踪gitbranch--set-upstrea......
  • docker 启动ElasticSearch
    拉取es镜像dockerpulldocker.elastic.co/elasticsearch/elasticsearch:7.15.0运行Elasticsearch容器dockerrun-d--namees-p9200:9200-e"discovery.type=single-node"-e"ES_JAVA_OPTS=-Xms512m-Xmx512m"-e"ELASTIC_PASSWORD=your_passw......
  • 导出/导入 docker 镜像文件
    在Docker中,导出和导入镜像通常不直接使用Docker的原生命令(如 dockersave 和 dockerload),而是可能会使用到Docker的镜像导出为文件(通常是tar文件)和从文件中导入镜像的功能。对于你提到的C++镜像(这里假设你已经有一个构建好的Docker镜像),下面是在CentOS7系统上导......
  • docker拉取镜像失败-----换源
    docker报错:errorpullingimageconfiguration:downloadfailedafterattempts=6:dialtcp108.160.170.39:443:connect:connectionrefused出这个错误就是你源有问题编辑Docker配置文件:打开或创建/etc/docker/daemon.json文件{"registry-mirrors":["h......
  • 四款主流 Docker 可视化工具,免费又好用 - 推荐使用朵云
    前言Docker提供了命令行工具来管理Docker的镜像和运行Docker的容器。我们也可以使用图形工具来管理Docker。目前,主流的Docker图形工具有DockerClouds、DockerUl、Portainer和Shipyard。DockerClouds朵云DockerClouds朵云是一款最简单的,单机环境中的管理......
  • Docker 教程简介
    教程名:Docker与微服务实战B站地址:尚硅谷Docker实战教程(docker教程天花板)-哔哩哔哩讲师:周阳‍前提了解SpringBoot,SpringCloud了解一些中间件:Redis,Nginx,MySQL了解Linux的基本使用知道Git‍课程大纲基础篇(零基小白)Docker简介Docker安装Docker常用命......
  • 介绍 Docker 的基本概念和优势,以及在应用程序开发中的实际应用。
    Docker是一种开源的容器化平台,用于构建、部署和运行应用程序。它基于容器技术,可以将应用程序及其依赖项打包到一个独立的可移植的容器中,并在不同的环境中快速部署和运行。Docker的基本概念包括:镜像(Image):镜像是一个只读的模板,包含了完整的运行环境和所需的软件依赖等。可以基......
  • Docker网络模式:深度理解与容器网络配置
    Docker的网络模式是容器化应用中一个关键而复杂的方面。本文将深入讨论Docker的网络模式,包括基本概念、常用网络模式以及高级网络配置,并通过更为丰富和实际的示例代码,帮助读者全面掌握如何理解和配置容器网络。Docker网络基础1Docker默认网络Docker提供了三种默认的网......
  • Docker网络是如何进行虚拟化的
    Docker网络是如何进行虚拟化的大家好,我是comi,今天为大家讲解一下docker网络的相关知识。docker在被安装进我们的电脑的时候,就会自动生成docker自己的网络,大家可以输入ifconfig尝试一下,docker0即自动生成的桥接网络​​docker自带命令可以查询docker的网络的整体信息sudodock......