迁移一个机器,结果发现所有镜像都没法 pull 了!
然后自己在国外机器部署的了代理

nginx 反向代理
docker 部署的代理[github 上找到的项目]

然后国内机器做好相关设置 更改配置以后 全部都依旧无法 pull 成功.
所以老哥们,请教一下现在国内的机器到底要怎样才能拉倒包.
-PS: 被搞的人都麻了,封这玩干啥

谢谢各位老哥.
网上各种免费的反向代理, 用了 全军覆没 超时 .
cf 自己搞了下 ,部署后 页面提示 1101Error 开发代码编辑器那是正常的.
最后按照点赞最多的老哥 反向打洞,已经成功访问 google,但是拽镜像已经超时.

不知道是不是腾讯云的系统里面搞了什么东西. 已经逐渐崩溃了~

docker.1panel.live

2024 年最新国内可用的 Docker 镜像加速器地址汇总
www.wxy97.com/archives/b5b225b6-7741-4560-be2f-2e6a4f671d9b

不要用 docker 啊, 国家现在全力打击 docker, 你居然头痛迎头而上, 小心被当业绩抓进去了

#1 也找到过 但是报
Trying to pull repository docker.io/jc21/nginx-proxy-manager ...
Get registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

#4 我傻瓜了.切错命令了.我再试一下.

#2 感谢 在挨个尝试

#3 用 docker 很正常啊 不晓得搞这些做啥

试试在 Cloudflare 上搭代理: github.com/ciiiii/cloudflare-docker-proxy

阿里云我记得就有镜像啊

找一个可用源地址,然后改掉镜像前缀

不受国内监管, 从国家安全角度出发, 这是无法接受的事情.

确实恶心,自缚手脚,上头随便的一个拍脑袋决定,就能恶心到下面无数人

你本地有梯子吗,参考这个搞 docker daemon 代理,这样就只代理 docker 拉镜像了,对别的服务没影响, docs.docker.com/engine/daemon/proxy/

两大步:

第一步、服务器挂代理(前提本地电脑已开梯子+允许局域网+端口号 7890 )
1.先在本地电脑 cmd 执行:ssh -R 1081:localhost:7890 -q -C -N username@remote_server
( username 和 remote_server 按实际修改,输入密码回车后没提示,不用管,此时 cmd 不要关闭)
2.再在服务器上执行:export ALL_PROXY=socks5://localhost:1081
(此时服务器 curl -v google.com 应该能返回 301 了)

第二步、docker 里挂代理
1.创建目录:mkdir -p /etc/systemd/system/docker.service.d
2.创建配置文件: /etc/systemd/system/docker.service.d/http-proxy.conf
3.配置文件 http-proxy.conf 填入以下内容,保存:
[Service]
Environment="HTTP_PROXY= localhost:1081"
Environment="HTTPS_PROXY= localhost:1081"

4.重新加载配置文件,重启 dockerd:
systemctl daemon-reload
systemctl restart docker
(此时 docker pull 应该没问题了)

我最近拉 fusionAuth 刚刚试过,配置之前死活 pull 不下来,配置之后很快就 pull 下来了。

dockerproxy.net/
输入要拉的镜像,直接帮你生成命令了
如果默认 dockerproxy.net 用不了,把命令中的 dockerproxy.net 换成 docker.1panel.live 或者其他地址

上魔法,一劳永逸

去油管搜 cf-docker,用 cf-worker 搭代理,全程不用写代码,不用钱(但得有个域名)

搭完后,在镜像前面加上你的域名+“/”号,就能高速下载。

或者把你 docker 镜像设置成你的 cf 域名,这样就一劳永逸了。

你可以试试我的,docker.alpaca-bi.com

比如docker pull docker.alpaca-bi.com/nginx

你直接看这个教程好了

阿里云有私有仓库,需要自己往上上传,企业用户都代理可以直接用。

可以参考我这个 有问题可以私我 github.com/heartleo/image-copy

你这拉的不还是 docker.io 么

搞个自用的 cf 转发,我把 npm 和 dockerhub 都挂上了。

作茧自缚

早晚有一天与世界脱钩

#3 你这种造谣的沙沟也是少见的

#3 前应后果都不知道。张个猪嘴就开始造谣了是吧

www.vps69.com/posts/install-docker/

#24 啊?不是早就脱钩了吗? 1949 年。

#3 你 git 也别用了

自有域名+CF worker 代理 dockerhub ,我一直用这个,电信和移动网络都可用

#26 那是为啥啊。

#14 学到了,原来还能这么用,之前是临时用可用的源,想着其他的服务可能也需要,一劳永逸干脆干脆挂梯子,还在找 linux 服务器哪些客户端合适,就看到你这个,省事不少

我也是在 cf 搭的代理加速,不记得教程是不是这个,但是基本可以跑满带宽

docker 一直断断续续有干扰, 因为有各种梯子镜像在上面. 但是高潮一击应该是有人把那个生成某领导声音的 tts 镜像上传上去了

临时使用/即用即走的可以看看这个: github.com/togettoyou/hub-mirror

提交 issues 就行

如果仅是做迁移, 可以自己搭一个 docker registry, 把旧环境的镜像全部 push 上去, 再到新环境 pull.

#34 。。。

把旧机器的镜像打包成 tar 包,然后传到新机器上,直接 load 不就行了?干嘛要重新 pull ?重新 pull 的话,如果版本号不对,可能还会有兼容性问题。

我是每次拉镜像时,用 tailscale ,把家里的软路由作为 exit node 来连外网的

阿里云腾讯云默认可以 pull 镜像,但不能 search 。在这两个云上 pull 镜像没问题。但如果还要访问其他外网资源,我建议是装安装 docker 版的 v2rayA ,即用即开。另外,如果是生产用的镜像,直接把本地调试好的镜像 export 出来,然后上传并 load ,避免版本差异。

dockerhub.icu/

补个图 手动执行也很方便

#14 老哥 已经成功
google 已经成功 301

301 Moved

301 Moved

The document has moved
here.

  • Connection #0 to host google.com left intact

但是 docker pull 后
Trying to pull repository docker.io/library/nginx ...
Get registry-1.docker.io/v2/: unexpected EOF

已经按照上面的步骤配置了代理了!晕 还请老哥看到指点一下

#19 work 部署 1101 错误 搞了半天没处理好

#15 curl registry-1.docker.io/v2/ 是可以返回数据的 看起来是代理配置没有生效

docker.kegui.net/
自己搭建的,拿去用不用谢.每个月 2t 流量,打不开了就是没流量了

#44
➜ ~ sudo docker info | grep -i proxy
WARNING: You're not using the default seccomp profile
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Http Proxy: localhost:1081
Https Proxy: localhost:1081
但是 依旧 Trying to pull repository docker.io/library/nginx ...
Get registry-1.docker.io/v2/: unexpected EOF

全世界只有中国一个国家需要国家安全吗?

/etc/systemd/system/docker.service.d/http-proxy.conf

[Service]
Environment="HTTP_PROXY= 127.0.0.1:8118"
Environment="HTTPS_PROXY= 127.0.0.1:8118"
Environment="NO_PROXY=localhost,127.0.0.1"

y2k38.github.io/deploy-docker-and-registry-service/

我都是挂梯子直连的。

#3 你这个发言真让人大跌眼镜

试了一圈,就是 1panel 最稳定

之前也是同样问题,同样搞了半天。最后搜到 v 站,看到有人分享 cf worker 代码,自己部署了个才解决。

原帖 www.hesudu.com/t/1007922

#53 我这里都不行 全都超时 不知道是不是腾讯云的系统镜像搞了什么鬼

#54 自己部署了下 worker 弄了后 提示 1101Error

#!/bin/bash -e

# 检查是否传递了目标参数
if [ $# -ne 1 ]; then
echo "Usage: $0 "
exit
fi

IMG=$1

###############################################################################
# DockerHub 镜像源列表
DOCKERHUB_REGISTRY_MIRRORS=(
"docker.1panel.live"
"docker.unsee.tech"
"docker.m.daocloud.io"
"docker.kejilion.pro"
"registry.dockermirror.com"
"hub.rat.dev"
"dhub.kubesre.xyz"
"docker.nastool.de"
)

###############################################################################
# 检查本地是否已经存在 ${IMG}
if docker images --format "{{.Repository}}:{{.Tag}}" | grep -q "^${IMG}$"; then
echo "镜像 ${IMG} 已经存在,跳过拉取步骤。"
exit 0
fi

# 遍历镜像源,拉取并打标签
for registry in "${DOCKERHUB_REGISTRY_MIRRORS[@]}"; do

registry_img=${registry}/${IMG}

# 检查本地是否已经存在 ${registry_img}
if docker images --format "{{.Repository}}:{{.Tag}}" | grep -q "^${registry_img}$"; then
echo "本地已经存在 ${registry_img},跳过拉取,进行打标签。"

# 为本地已有的镜像打标签为 ${IMG}
if docker tag ${registry_img} ${IMG}; then
echo "镜像 ${registry_img} 成功打标签为 ${IMG}。"
docker rmi ${registry_img} # 删除原镜像( registry 镜像源)
exit 0 # 成功后退出脚本
else
echo "为镜像 ${registry_img} 打标签失败!"
continue
fi
fi

echo "尝试从镜像源 ${registry} 拉取 ${IMG}..."

# 拉取镜像
if docker pull ${registry_img}; then
# 打标签为 ${IMG}
if docker tag ${registry_img} ${IMG}; then
echo "镜像 ${registry_img} 成功打标签为 ${IMG}。"
docker rmi ${registry_img} # 删除原镜像( registry 镜像源)
exit 0 # 成功后退出脚本
else
echo "为镜像 ${IMG} 打标签失败!"
docker rmi ${registry_img} # 删除失败的镜像
continue
fi
else
echo -e "从 ${registry} 拉取镜像失败,尝试下一个镜像源...\n"
continue
fi
done

echo "所有镜像源都尝试过,未能拉取并打标签 ${IMG}。"

# 保存为 docker-pull.sh ,docker-pull.sh 镜像

➜ puppetmaster git:(main) ✗ cat /etc/docker/daemon.json
{
"data-root": "/data/docker",
"registry-mirrors": [
" docker.registry.cyou"
]
}
➜ puppetmaster git:(main) ✗ docker pull busybox
Using default tag: latest
latest: Pulling from library/busybox
Digest: sha256:db142d433cdde11f10ae479dbf92f3b13d693fd1c91053da9979728cceb1dc68
Status: Image is up to date for busybox:latest
docker.io/library/busybox:latest
试试这个呢

我之前也被类似的问题卡过..
我那会是 docker 构筑的时候会拉别的源...
不过你拉 docker 构筑后的镜像按理说不应该..
我最后是在网关做了分流,外网连接自己走代理解决的这个问题

14 楼正确答案

最近搭 k8s 集群也被 docker 镜像拉取恶心到了

如果你使用的镜像不多的话可以手动上传,本地电脑 docker save 出压缩包 上传到服务器 docker load 导入就行。

云服务器开代理注意自己防火墙,别问为啥知道的,建议自建一个镜像站自己用

腾讯云有个仅供内网使用的 docker 镜像,目前使用良好 mirror.ccs.tencentyun.com

顺便说一下,关于 dockerd 走代理:新版本 docker 可以在 deamon 配置文件中配置代理,文档见: docs.docker.com/config/daemon/proxy/,配置文件位置为:

Linux, regular setup -> /etc/docker/daemon.json
Linux, rootless mode -> ~/.config/docker/daemon.json
Windows -> C:\ProgramData\docker\config\daemon.json

建议大家还是不要分享自己搭的 docker 代理吧,这次 ban 掉 docker 再结合云商允许提供个人的 docker 源访问,我理解的就是乘着这次把 docker 镜像源责任到人( docker 和 github 是为数不多的不受监管的国内外信息接入点,上面想整已经不是一天两天了),出了事得有人可拷

自建代理納

在可以 pull 的机器先 pull 后导出到 tar ,scp 到服务器再导入

你这个 unexpected EOF 的报错我也遇到过,但忘记怎么处理的了。
你试试再执行一下这两句呢?:
export HTTP_PROXY= localhost:1081
export HTTPS_PROXY= localhost:1081

我刚刚回滚到最初快照,重新配置测了下,可以成功拉取被封的仓库。
然后也可以试试本地电脑的梯子换换线路+改成全局模式之类的,我之前规则模式竟然连 curl -v google 都返回不了 301 。

我目前是自建了一个官方镜像配置登录鉴权的 registry 容器加自有域名搭配组成代理缓存仓库
配置容器的 HTTP_PROXY 和上游仓库 REGISTRY_PROXY_REMOTE=htps://registry-1.docker.io
利用 nginx 反代自有域名,pull 的时候带上 domain.com:port/docker_url 就能正常工作,就是每个镜像都得手动在前面加域名端口有点麻烦
理论上可以找个能直连访问到 dockerhub 仓库的地方做反代就行,就像#18 #30 说的那样

最近也有需求,新鲜出炉的只需三步:

  1. 海外节点做反代,使用 let's encrypt 免费证书
  2. 配置本地节点的 registry mirrors 为反代域名
  3. 重启 docker daemon

    export HTTP_PROXY= localhost:1081
    为啥不直接用 7890 端口呢?

    好像也不是不行。。主要是区分一下服务器代理和本地电脑代理吧。

    试试
    # 国外机器执行

cat > docker-compose.yml << EOF
networks:
registry:
name: registry

services:
registry:
image: "registry:2.8.3"
container_name: registry
ports:

  • "5000:5000"
    networks:
  • registry
    restart: unless-stopped
    volumes:
  • "/etc/localtime:/etc/localtime"
  • "./data:/var/lib/registry"
  • "./config.yml:/etc/docker/registry/config.yml"

EOF

cat > config.yml << EOF
version: 0.1
log:
level: debug
formatter: json
storage:
filesystem:
rootdirectory: /var/lib/registry
delete:
enabled: true
cache:
blobdescriptor: inmemory
maintenance:
uploadpurging:
enabled: true
age: 168h
dryrun: false
interval: 1m
readonly:
enabled: false
http:
addr: 0.0.0.0:5000
health:
storagedriver:
enabled: true
interval: 10s
proxy:
remoteurl: registry-1.docker.io
EOF

$ docker-compose up -d

# 国内机器执行

cat > /etc/docker/daemon.json << EOF
{
"insecure-registries": ["ip:5000"]
}
EOF

systemctl daemon-reload
systemctl restart docker

# 拉取镜像
docker pull ip:5000/library/nginx:latest

v 站怎么贴代码啊 缩进都没了

GNU/Linux 更换系统软件源脚本及 Docker 安装脚本
官网: linuxmirrors.cn/
bash <(curl -sSL linuxmirrors.cn/main.sh)

gitee.com/extrame/dget
我最近更新群晖里面 docker 服务时找到的,直接从官方拉去 docker 镜像
使用的时候需要打开梯子工具 http 代理。
然后再命令提示符里面输入以下命令,设置 http 代理变量(当然也可以直接配置到系统环境变量内)。
set HTTP_PROXY= 127.0.0.1:1080 (需要改成你的梯子 http 代理端口)
set HTTPS_PROXY= 127.0.0.1:1080 (需要改成你的梯子 http 代理端口)

然后参考 gitee.com/extrame/dget 页面的说明拉去 docker 的镜像进行部署就行。

docker 的代理要单独配置,什么 http_proxy 变量之类的没用的

贴一下以前做的笔记
ant00000ny.notion.site/Docker-a96deab43b49438babd4dd2a7724a5e0?pvs=4

我腾讯云的就不行,直接 Error response from daemon: Get " registry-1.docker.io/v2/

其实目前第三方的镜像站还是有一些的,类似 dockerpull.org 、 docker.unsee.tech 之类的应该都可以用,只要 OP 信得过。或者还有一种办法是用 SSH 端口映射,把自己电脑上的代理软件的 socks5 端口映射到服务器上去用。
写了个帖子专门记录了常见的几种情况,可供参考: blog.openyq.top/posts/12753/

楼上老哥贴的, dockerpull.org/ 这个就可以。作者在 linux.do 和 v 站发过帖子,就是用 CF 自建的

为啥不同国内的镜像?

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
 "registry-mirrors": [
 " hub-mirror.c.163.com",
 " mirror.ccs.tencentyun.com",
 " 05f073ad3c0010ea0f4bc00b7105ec20.mirror.swr.myhuaweicloud.com",
 " registry.docker-cn.com",
 " docker.m.daocloud.io",
 " docker.1panel.live",
 " hub.rat.dev",
 " dockerpull.com",
 " dockerproxy.cn",
 " docker.rainbond.cc",
 " docker.udayun.com",
 " docker.211678.top"
 ]
}
EOF

systemctl restart docker

安装 wireguard 开全局代理拉镜像,简单省事

#79 对 我的也卡在这一步.机器也是腾讯云,怀疑系统里面搞了什么鬼

#82 全部 直接 Error response from daemon: Get " registry-1.docker.io/v2/ 不知道是不是腾讯云服务器搞了啥子鬼.