主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情! |
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作 |
文章目录
2023 年 5 月,hub.docker.com 由于“未知”原因在中国无法访问。 当时只是官网无法访问,拉取镜像没有受到影响。
2024年6月,国内多家Docker Hub镜像服务平台宣布被“要求”下架并停止服务。 未来会开放吗? 还是要开启白名单模式?
国内私有镜像加速,包括华为云、阿里云目前暂不支持。
这里我就不解释为什么了。 这里有一些有用的方法可以帮助有需要的孩子成功获取 Docker 镜像。
如果你还有其他给孩子做鞋子的方法,欢迎留言分享给大家~
详情:Docker / Docker常用命令 / Docker Hub
p>零阈值外国镜像
优点:无需进行大量更改,只需几个命令Masu。
缺点:可能出现网络故障。 缓慢或不稳定
俄罗斯是一个类似情况的国家。 俄罗斯受到美国制裁,无法顺利访问Docker Hub。 在这里你可以使用俄罗斯乡村镜子!
下面的命令可以直接运行~
sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": [ “https://docker.m.daocloud.io”、“https://huecker.io”、“https://dockerhub.timeweb.cloud”、“https://noohub.ru” ]}EOFsudo systemctl daemon-reloadsudo systemctl restart docker
参考文章:日本地区无法访问 Docker Hub 的解决方法总结
导出和导入图像
优点:易于用于项目部署
缺点:图像文件可能很大,复制和迁移有点繁琐
您所需要做的就是将镜像导出到已经拉取镜像的服务器,并将其导入到需要拉取镜像的服务器。
将镜像导出到xxx.tar
docker save -o 示例:docker save -o nginx.tar nginx
复制xxx.tar到其他服务器
docker load -i 示例:dockerload -i nginx.tar
Yandex容器 更快
优点:适合用作来自俄罗斯领先制造商的单独拉取映像。
缺点:不支持配置守护进程。 .json
官方镜像:https://mirror.yandex.ru/
使用方法:docker pull cr.yandex/mirror/nginx
门槛低
Docker使用的HTTP代理
优点:可以直接从Docker官方获取。
缺点:使用后请务必关闭 HTTP 代理。
首先,代理软件是Docker Hub官网! 这个软件就不多说了。 V2**N 用于测试。 设置软件支持局域网内的访问。
部分内容应结合之前的文章查看。
局域网服务器使用Springboard访问互联网
GitHub国内加速:Linux虚拟机使用局域网代理优化访问
p>
服务器添加shell窗口中的HTTP代理环境变量到上面两篇文章,但是shelllWindows代理环境变量对Docker Pull镜像没有影响。
这里主要介绍如何在服务器上为 Docker Pull 提供代理!
1.创建一个新目录。
1.创建一个新目录。
mkdir -p /etc/systemd/system/docker.service.d
2. 创建一个新文件,粘贴内容并保存。
vim /etc/systemd/system/docker.service.d/http-proxy.conf
粘贴以下内容。 该IP应替换为运行代理软件的计算机的内网IP。 可以通过ipconfig查看。
该端口必须是您的代理软件中配置的 LAN 端口。
[Service]Environment=HTTP_PROXY=http://192.168.8.125:10819"Environment=HTTPS_PROXY=http://192.168.8.125:10819"Environment="NO_PROXY=your-registry.com,10.10.10.10, *.example.com"
3、Docker 重启systemctl daemon-reloadsystemctl 重启docker
4,环境变量有效
systemctl show --property=Environment docker
Cloudflare反向代理阈值高
好处:你所需要的只是一个CF账户,是你的,不用你自己颁发证书。
缺点:CF 在中国已经存在并且可能存在 DNS 污染。 无法访问成功
简单步骤:
1.CF https://dash.cloudflare.com/
2 登录到控制台面板 -> 左侧的工作人员和页面 ->创建应用程序 -> 创建 Worker -> 单击保存 -> 单击完成 -> 编辑代码
worker.js 内容
从 './docker.html' 导入 HTML { async fetch (请求) { const url = new URL(request.url); const path = URL.pathname = request.headers.get("host"); "registry-1.docker.io"; if (path.startsWith("/v2/")) { const headers = new Headers(request.headers); headers.set("host",registryHost); https://${registryHost}${path}`; constregistryRequest = new Request(registryUrl, {method: request.method, headers: headers, body: request.body, 重定向: "follow", }); constregistryResponse = wait fetch(registryRequest); console.log(registryResponse.status);onseHeaders = new headers(registryResponse.headers); responseHeaders.set("access-control-allow-headers", 原始主机); (registryResponse.body, { status:registryResponse.status, statusText:registryResponse.statusText, headers:responseHeaders, }); else { return new Response(HTML.replace(/{{host}}/g,originalHost), { status: 200, headers: { "content-type": "text/html" } }); >
创建一个新文件 docker.html 并粘贴以下内容。
如何使用镜像
为了加快镜像检索速度,可以使用以下命令设置注册表镜像:
sudo tee /etc/docker/daemon.json < <EOF{ "registry-mirrors" : ["https://{{host}}"]}EOF
手动拉取映像以避免耗尽工作线程使用量,然后重试。 标记它并将其推送到本地图像存储库。
docker pull {{host}}/library/alpine:latest # 拉取库镜像 docker pull {{host}}/coredns/coredns:latest # 拉取 coredns 镜像
3.点击部署
4. 绑定自定义域名>设置 -> 触发器 -> 自定义域 -> 单击添加自定义域。
没有域名?请参阅之前的博文:免费域名
演示地址:dockerhub.o0o.us.kg
Nginx 反向代理
优点:需要海外服务器
p>
缺点:网络可能很慢或不稳定。
该方式需要境外服务器颁发域名证书。 单击下面的设置。
这里博主没有测试过。 以下内容仅供参考。
server { 监听 443 ssl; ssl_certificate 证书地址; proxy_ssl_server_name 已打开。 # 启用 SNI ssl_session_timeout 24 小时。 ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305 :ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256'; ssl_协议 TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;location / { proxy_pass https://registry-1.docker.io; # Docker Hub 官方镜像仓库 proxy_set_header 主机registry-1.docker.io; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for ; proxy_set_header X-Forwarded-Proto $scheme; # 关闭缓存 proxy_buffering off; # 转发身份验证相关标头 proxy_set_header Authorization $http_authorization; proxy_pass_headerauthentication; # 检查上游状态代码并实现 error_page 错误重定向 proxy_intercept_errors on. # error_page命令默认只检查第一个后端返回的状态码。 启用后,可以遵循多个重定向。 recursive_error_pages 已打开。#根据状态码执行相应的操作。 以下状态码301、302、307触发#error_page 301 302 307 = @handle_redirect; error_page 429 = @handle_too_many_requests; } #处理重定向位置 @handle_redirect {Resolver 1.1.1.1; set $saved_redirect_location '$upstream_http_location'; proxy_pass $saved_redirect_location; } #处理429错误位置 @handle_too_many_requests { proxy_set_header 主机将替换为您在 CloudFlare Worker 上配置的域名。 # 替换为另一台服务器的地址 proxy_pass http:// 替换为 CloudFlare Worker 上配置的域名。 proxy_set_header host $http_host ; } }
其他开源项目
https://github.com/NoCLin/LightMirrors
https://github.com/bboysoulcn/registry-mirror
最后总结
1.为了临时使用,加入一些方便快捷的零门槛计划我们建议您这样做。
2.据说后期IP来源也可能受到影响。 您可以使用 HTTP 代理方法。
3.国内阿里云和腾讯云均提供私有镜像服务。 你可以尝试一下。
本文部分内容引用自lty520.faith,但除Nginx外,所有内容仅供Masu个人测试。
这几篇文章你可能也喜欢:
本文由主机参考刊发,转载请注明:In China, I don't have access to different solutions to download Docker images (In China, I don't have access to different solutions to download Docker images) https://zhujicankao.com/140679.html
评论前必须登录!
注册