国内机器 docker 的镜像到底应该怎么拽?

33 天前
 molika

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

然后国内机器做好相关设置 更改配置以后 全部都依旧无法 pull 成功. 所以老哥们,请教一下现在国内的机器到底要怎样才能拉倒包.

-PS: 被搞的人都麻了,封这玩干啥

12373 次点击
所在节点    程序员
147 条回复
bingoso
33 天前
阿里云腾讯云默认可以 pull 镜像,但不能 search 。在这两个云上 pull 镜像没问题。但如果还要访问其他外网资源,我建议是装安装 docker 版的 v2rayA ,即用即开。另外,如果是生产用的镜像,直接把本地调试好的镜像 export 出来,然后上传并 load ,避免版本差异。
horizon
33 天前
heartleo
33 天前
@molika 补个图 手动执行也很方便
molika
33 天前
@liuzimin #14 老哥 已经成功
google 已经成功 301
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.com/">here</A>.
</BODY></HTML>
* Connection #0 to host google.com left intact

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

已经按照上面的步骤配置了代理了!晕 还请老哥看到指点一下
molika
33 天前
@biguokang #19 work 部署 1101 错误 搞了半天没处理好
molika
33 天前
@liuzimin #15 curl https://registry-1.docker.io/v2/ 是可以返回数据的 看起来是代理配置没有生效
5ibug
33 天前
http://docker.kegui.net/
自己搭建的,拿去用不用谢.每个月 2t 流量,打不开了就是没流量了
molika
33 天前
@molika #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: http://localhost:1081
Https Proxy: http://localhost:1081
但是 依旧 Trying to pull repository docker.io/library/nginx ...
Get https://registry-1.docker.io/v2/: unexpected EOF
dylanqqt
33 天前
@bthulu 全世界只有中国一个国家需要国家安全吗?
Flourite
33 天前
/etc/systemd/system/docker.service.d/http-proxy.conf

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

https://y2k38.github.io/deploy-docker-and-registry-service/
hefish
33 天前
我都是挂梯子直连的。
nananqujava
33 天前
@bthulu #3 你这个发言真让人大跌眼镜
fanersai
33 天前
试了一圈,就是 1panel 最稳定
elevioux
33 天前
之前也是同样问题,同样搞了半天。最后搜到 v 站,看到有人分享 cf worker 代码,自己部署了个才解决。

原帖 https://www.v2ex.com/t/1007922
molika
33 天前
@fanersai #53 我这里都不行 全都超时 不知道是不是腾讯云的系统镜像搞了什么鬼
molika
33 天前
@elevioux #54 自己部署了下 worker 弄了后 提示 1101Error
treizeor
33 天前
#!/bin/bash -e

# 检查是否传递了目标参数
if [ $# -ne 1 ]; then
echo "Usage: $0 <docker image>"
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.shdocker-pull.sh 镜像
liuliancao
33 天前
➜ puppetmaster git:(main) ✗ cat /etc/docker/daemon.json
{
"data-root": "/data/docker",
"registry-mirrors": [
"https://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
试试这个呢
zephyru
33 天前
我之前也被类似的问题卡过..
我那会是 docker 构筑的时候会拉别的源...
不过你拉 docker 构筑后的镜像按理说不应该..
我最后是在网关做了分流,外网连接自己走代理解决的这个问题
burby
33 天前
14 楼正确答案

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1095188

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX