docker不能访问了,对于我这种爱折腾的nas玩家,有一点点小小的麻烦(给小伙伴远程辅助时无法下载docker镜像),所以收集了目前可用的docker镜像地址和各类使用教程,方便小伙伴进行下载。
本文全是干货,没有水分
准备工作:自己整个域名,备不备案都可以。阿里或者腾讯购买域名top或者xyz后缀的,一年9元,不想购买域名的可以参考我之前的免费申请域名文章,本文举例子用的域名就是免费申请获得的eu.org后缀域名
一:NAS使用
-
群晖
-
群晖打开 Container Manager —— 注册表 —— 设置 —— 新增一个注册表
注册表名称:随意填写
注册表URL:https://index.docker.io
启用注册表镜像:https://dk.lifgam.eu.org https://ddk.lifgam.eu.org
或者直接ssh拉取命令拉取,具体命令往下看服务器拉取篇,这些都是通用的
-
-
威联通
-
威联通打开Container Station 容器工作站 —— 储存库 —— 编辑新增储存库 —— 名称随意 URL填写你自己的或者我提供的地址
https://dk.lifgam.eu.org 或者 https://ddk.lifgam.eu.org 二选一即可
dk是服务器反代 ddk是Cloudflare方式
或者直接ssh拉取命令拉取,具体命令往下看服务器拉取篇,这些都是通用的
-
-
极空间
极空间等待小伙伴有空远程再更新教程
-
万由
万由暂时没有图片,但是流程是一样的
二:服务器使用
-
添加到docker注册表,命令行输入下面的命令,链接随时失效,可以改为自己的,或者是文章底部我提供的地址
# 创建docker目录 sudo mkdir -p /etc/docker # 将下面的文件写入到docker镜像源配置文件里面 sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://dk.lifgam.eu.org", "https://ddk.lifgam.eu.org", ] } EOF # 重新加载守护进程 sudo systemctl daemon-reload # 重启docker sudo systemctl restart docker
-
快速拉取
替换拉取命令:
例如我要拉取selenium/standalone-chrome这个镜像,那么用的原生命令就是
docker pull selenium/standalone-chrome
此时,修改命令为下面的格式,就可以加速拉取
docker pull ddk.lifgam.eu.org/selenium/standalone-chrome
-
给docker增加代理环境变量
- 新建目录
mkdir -p /etc/systemd/system/docker.service.d
- 新建配置文件,粘贴后面的内容并保存
vim /etc/systemd/system/docker.service.d/http-proxy.conf
粘贴下面的内容:大概意思是http和https协议通过192.168.2.66:10801进行代理链接,最后一个是不走代理的域名和ip地址以及泛域名示例
[Service] Environment="HTTP_PROXY=http://192.168.2.66:10801" Environment="HTTPS_PROXY=http://192.168.2.66:10801" Environment="NO_PROXY=your-registry.com,127.1.1.10,*.example.com"
3,重启Docker
# 重新加载守护进程 sudo systemctl daemon-reload # 重启docker sudo systemctl restart docker
4,检查环境变量是否生效
systemctl show --property=Environment docker
-
各类面板拉取
BT宝塔面板docker,设置——加速URL——设置完了记得重启一下docker
随后就可以正常下载了
1panel面板
容器——配置——基础配置——镜像加速
三:部署教程
- 服务器部署
-
cloudflare部署
-
进入Workers和Pages
-
部署新的Worker项目,名称随意
-
worker.js文件粘贴下面代码,随后记得ctrl+s保存一下这个文件
import HTML from './docker.html'; export default { async fetch(request) { const url = new URL(request.url); const path = url.pathname; const originalHost = request.headers.get("host"); const registryHost = "registry-1.docker.io"; if (path.startsWith("/v2/")) { const headers = new Headers(request.headers); headers.set("host", registryHost); const registryUrl =
https://${registryHost}${path}
; const registryRequest = new Request(registryUrl, { method: request.method, headers: headers, body: request.body, // redirect: "manual", redirect: "follow", }); const registryResponse = await fetch(registryRequest); console.log(registryResponse.status); const responseHeaders = new Headers(registryResponse.headers); responseHeaders.set("access-control-allow-origin", originalHost); responseHeaders.set("access-control-allow-headers", "Authorization"); return new Response(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文件,粘贴下面代码,代码里面有个地方改为自己的域名,我已经用文字表达出来了
Mirror Usage Mirror Usage
镜像加速说明
为了加速镜像拉取, 你可以使用以下命令设置registry mirror:
sudo tee /etc/docker/daemon.json <<EOF { "registry-mirrors": ["这里写你自己的域名"] } EOF
为了避免 Worker 用量耗尽, 你可以手动 pull 镜像然后 re-tag 之后 push 至本地镜像仓库:
docker pull {{host}}/library/alpine:latest # 拉取 library 镜像 docker pull {{host}}/coredns/coredns:latest # 拉取 library 镜像
-
点击右上角部署并运行
- 绑定自己的域名
这样就完成部署了
-
地址合集
https://docker.m.daocloud.io
https://huecker.io
https://dockerhub.timeweb.cloud
https://noohub.ru
https://dk.lifgam.eu.org
https://ddk.lifgam.eu.org
docker.1panel.live -- 1Panel 面板提供(推荐)
hub.rat.dev -- 耗子面板提供
docker.m.daocloud.io -- DaoCloud 提供(限速+Linux)
hub.uuuadc.top
docker pull hub.rat.dev/oldiy/chrome-novnc
暂无评论内容