加入收藏 | 设为首页 | 交流中心 | 我要投稿 | RSS
您当前的位置:首页 > 技术中心 > 高谈阔论

docker的意外情况对策

时间:2024-10-10 09:39:33  来源:  作者:

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

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

image-20240705114601834
image-20240705114601834
A0g快充网络

今天就介绍几个方法让拯救你的DockerA0g快充网络

方法1: 某些云镜像加速A0g快充网络

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

方法3:使用Github Action 构建docker镜像A0g快充网络

方法4: 部署DockerHub的代理A0g快充网络

方法5: 镜像仓库前缀替换A0g快充网络

image-20240705163035256
image-20240705163035256
A0g快充网络

一、某些云镜像加速

这里某些云包括但不限于国内的几大云,XX云、腾讯云、华为云,使用的方法都大同小异,这里介绍华为云的用户A0g快充网络

镜像加速不可用

腾讯云镜像加速器地址:https://mirror.ccs.tencentyun.comA0g快充网络

中国科学技术大学:https://docker.mirrors.ustc.edu.cnA0g快充网络

Docker官方镜像(中国区)镜像加速:https://registry.docker-cn.comA0g快充网络

网易云镜像加速器地址:http://hub-mirror.c.163.comA0g快充网络

南京大学镜像加速器地址:https://docker.nju.edu.cnA0g快充网络

镜像加速可用镜像源

 A0g快充网络

华为云的镜像加速地址:XXX.mirror.swr.myhuaweicloud.comA0g快充网络

Daocloud 镜像加速器地址:https://docker.m.daocloud.ioA0g快充网络

华为云镜像加速

进入华为云搜索“容器镜像服务”或者 "SWR" ,进入控制台A0g快充网络

点击 “镜像资源”---> “镜像中心”---> "镜像加速器"A0g快充网络

image-20240704174353786
image-20240704174353786
A0g快充网络

操作说明A0g快充网络

安装/升级容器引擎客户端

推荐安装1.11.2以上版本的容器引擎客户端A0g快充网络

配置镜像加速器

针对容器引擎客户端版本大于 1.11.2 的用户 以root用户登录容器引擎所在的虚拟机A0g快充网络

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

代码语言:javascript
复制
vi /etc/docker/daemon.json ​ {     "registry-mirrors": [ "https://你的地址.mirror.swr.myhuaweicloud.com" ] }按“Esc”,输入:wq保存并退出。

重启容器引擎

配置完成后,执行systemctl restart docker重启容器引擎。 如果重启失败,则检查操作系统其他位置A0g快充网络

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

确认配置结果

执行docker info,当Registry Mirrors字段的地址为加速器的地址时,说明加速器已经配置成功。A0g快充网络

阿里云镜像加速

https://cr.console.aliyun.com/A0g快充网络

image-20240705110013415
image-20240705110013415
A0g快充网络

镜像加速器

点击"镜像工具"--->镜像加速器A0g快充网络

A0g快充网络

二、使用Docker Hub并将镜像推送到自有仓库

之前写过一篇文章: https://mp.weixin.qq.com/s/OrcBrtrZRwie3Q8eYVfl-AA0g快充网络

画个图说明:A0g快充网络

image-20240705153238249
image-20240705153238249
A0g快充网络

当然也可以打包下载到本地A0g快充网络

代码语言:javascript
复制
docker save busybox > busybox.tar docker load < busybox.tar

三、使用Github Action 构建docker镜像

前置条件

1.可以访问Github,国内环境github时而抽风体质,如果没有科学环境也可以使用 https://github.com/521xueweihan/GitHub520 +SwitchHosts 基本还是可以使用的(有的话就当我没说)。A0g快充网络

2.有个github账号A0g快充网络

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

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

1.要有一个github账号

没有账号就需要注册一个。A0g快充网络

https://github.comA0g快充网络

2.fork项目DockerTarBuilder

fork 叉子叉到自己的仓库中: https://github.com/wukongdaily/DockerTarBuilderA0g快充网络

image-20240704165355729
image-20240704165355729
A0g快充网络

3.点击 Actions

点击Actions选项卡,再点击同意A0g快充网络

image-20240704165435226
image-20240704165435226
A0g快充网络

选择平台,再填入镜像名A0g快充网络

image-20240704165730904
image-20240704165730904
A0g快充网络

4.下载镜像

点击 All workflowsA0g快充网络

image-20240704165853901
image-20240704165853901
image-20240704165932860
image-20240704165932860
A0g快充网络

5.解压恢复镜像

将下载好的压缩包上传到docker宿主机上。A0g快充网络

代码语言:javascript
复制
解压 # 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 74 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账号A0g快充网络

有个cloudflare账号A0g快充网络

2.访问并fork如下项目到自己的仓库

https://github.com/cmliu/CF-Workers-docker.ioA0g快充网络

3.部署到cf的pages服务中

3.1登录cloudflare并点击Worker和Pages

点击 “Worker和Pages”再点 概述A0g快充网络

点击 “点击pages”再点 “连接到GitA0g快充网络

image-20240705160146960
image-20240705160146960
A0g快充网络

3.2 点击pages

连接GitHubA0g快充网络

image-20240705160205349
image-20240705160205349
A0g快充网络

容易登录之后A0g快充网络

3.3 选择刚才fork的仓库

image-20240705160312609
image-20240705160312609
A0g快充网络

点击 保存并部署A0g快充网络

构建和部署A0g快充网络

image-20240705160448775
image-20240705160448775
A0g快充网络

继续处理项目A0g快充网络

image-20240705160516489
image-20240705160516489
A0g快充网络

4.访问并记录刚才部署的代理网站

部署成功,点击访问站点。A0g快充网络

image-20240705160657935
image-20240705160657935
A0g快充网络

5.自定义域名

这步不是必须A0g快充网络

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

我这里配置的域名 dockerhub.xgss.net域名解析过来A0g快充网络

image-20240705161003351
image-20240705161003351
image-20240705161210924
image-20240705161210924
A0g快充网络

代码语言:javascript
复制
# 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.修改配置文件

代码语言:javascript
复制
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 ​

五、镜像仓库前缀替换

如果由于网络限制,你无法直接访问某些镜像仓库,还可以尝试通过修改镜像仓库前缀来拉取镜像。一些国内的服务商提供了镜像仓库的镜像服务,你可以将原有的仓库前缀替换为对应的国内服务商的前缀。A0g快充网络

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

https://github.com/DaoCloud/public-image-mirror?tab=readme-ov-file#%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95A0g快充网络

总结

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

来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
相关文章
    无相关信息
栏目更新
栏目热门