总结了在使用 Easysearch 时候下载Docker的一些技巧,一起分享给大家。

一、关于latest 标签
这是最重要的一条原则,所以 Easysearch 厂家就没有发行latest镜像。
1 2 3 4 5
| docker pull infinilabs/easysearch:latest
docker pull infinilabs/easysearch:2.2.0-20260422-SNAPSHOT
|
为什么不用 latest?
latest 只是一个普通 tag,镜像仓库可以随时将它重新指向新版本
- 有些镜像站更新不及时,pull可能拉到旧的版本
- 无法从 tag 本身判断镜像的实际内容
- 回滚时无法确定
latest 指向哪个历史版本
查看可用版本:
1 2 3 4 5 6
|
curl -s "https://hub.docker.com/v2/repositories/infinilabs/easysearch/tags/?page_size=20" \ | jq '.results[].name'
|

二、使用镜像加速源
Docker Hub 在国内访问速度不稳定,配置加速源是提升下载速度的首要手段。
2.1 配置 Docker 镜像加速
由于镜像源并不稳定,这里只列出办法,不做推荐,如果有代理的话,也是加载到Docker 引擎,否则不能帮我我们下载到 Easysearch。
编辑 /etc/docker/daemon.json:
1 2 3 4 5 6
| { "registry-mirrors": [ "https://docker.yyy.yyy", "https://docker.xxx.xxx" ] }
|
重启 Docker 生效:
1 2 3 4 5
| sudo systemctl daemon-reload sudo systemctl restart docker
docker info | grep -A5 "Registry Mirrors"
|
部分仓库提供对 Docker Hub 的透明代理,直接替换镜像前缀即可:
1 2 3 4 5 6 7 8
| docker pull infinilabs/easysearch:2.2.0-20260422-SNAPSHOT
docker pull dockerpull.org/infinilabs/easysearch:2.2.0-20260422-SNAPSHOT
docker tag dockerpull.org/infinilabs/easysearch:2.2.0-20260422-SNAPSHOT infinilabs/easysearch:2.2.0-20260422-SNAPSHOT
|
三、SHA256 摘要校验
使用版本 tag 固定了名称,但无法防止仓库端镜像被替换(tag 可以被覆盖写入)。使用 digest(SHA256 摘要)才能真正做到内容寻址,确保拉取的镜像字节级一致。
3.1 查询镜像 Digest
1 2 3 4 5 6 7 8 9 10 11
| docker pull infinilabs/easysearch:2.2.0-20260422-SNAPSHOT
docker inspect infinilabs/easysearch:2.2.0-20260422-SNAPSHOT \ --format='{{index .RepoDigests 0}}'
crane digest infinilabs/easysearch:2.2.0-20260422-SNAPSHOT
|
3.2 通过 Digest 拉取镜像
1 2 3 4
| docker pull infinilabs/easysearch@sha256:a1b2c3d4e5f6...
|
1 2 3 4
| services: easysearch: image: infinilabs/easysearch:1.8.2@sha256:a1b2c3d4e5f6...
|
3.3 校验本地镜像完整性
1 2 3 4 5 6
| docker images --digests infinilabs/easysearch
|
四、Tag 管理技巧
4.1 打 Tag 的标准做法
拉取镜像后,立即为其打上符合内部规范的标签,再推送到私有仓库:
1 2 3 4 5 6 7 8 9
| docker pull infinilabs/easysearch:2.2.0-20260422-SNAPSHOT
docker tag infinilabs/easysearch:2.2.0-20260422-SNAPSHOT your-registry.internal/infra/easysearch:2.2.0-20260422-SNAPSHOT docker tag infinilabs/easysearch:2.2.0-20260422-SNAPSHOT your-registry.internal/infra/easysearch:1.8.2-prod
docker push your-registry.internal/infra/easysearch:2.2.0-20260422-SNAPSHOT
|
4.2 Tag 命名规范建议
1 2 3 4 5 6
| <registry>/<namespace>/<image>:<semver>[-<variant>]
示例: your-registry.internal/infra/easysearch:2.2.0 # 标准版本 your-registry.internal/infra/easysearch:2.2.0-arm64 # 架构变体 your-registry.internal/infra/easysearch:2.2.0-20260422-SNAPSHOT # 版本+日期(内部构建)
|
4.3 清理冗余 Tag
1 2 3 4 5 6 7 8 9
| docker images | grep easysearch
docker rmi infinilabs/easysearch:1.7.0 docker rmi infinilabs/easysearch:1.7.1
docker image prune -f
|
五、多架构镜像处理
Easysearch 提供 amd64 和 arm64 多架构镜像,使用 docker buildx 处理跨架构场景:
1 2 3 4 5 6 7 8 9 10 11
| docker buildx imagetools inspect infinilabs/easysearch:2.2.0-20260422-SNAPSHOT
docker pull --platform linux/arm64 infinilabs/easysearch:2.2.0-20260422-SNAPSHOT
docker save infinilabs/easysearch:2.2.0-20260422-SNAPSHOT -o easysearch-2.2.0-20260422-SNAPSHOT-arm64.tar
|

六、离线环境部署
网络受限环境下,使用 save/load 传输镜像:
1 2 3 4 5 6 7 8 9 10 11 12
| docker pull infinilabs/easysearch:1.8.2 docker save infinilabs/easysearch:1.8.2 | gzip > easysearch.tar.gz
sha256sum easysearch.tar.gz > easysearch.tar.gz.sha256
sha256sum -c easysearch.tar.gz.sha256
docker load < easysearch.tar.gz
|

七、最佳实践总结
| 场景 |
推荐做法 |
| 版本固定 |
使用语义化版本 tag,禁用 latest |
| 内容校验 |
生产环境用 @sha256: digest 引用 |
| 下载加速 |
配置镜像加速源或者使用代理 |
| 内部管理 |
拉取后 retag 推入私有仓库,统一来源 |
| 离线部署 |
docker save + sha256sum 双重保障 |
| 多架构 |
明确指定 --platform,不依赖自动检测 |
| 存储清理 |
定期 docker image prune,删除无用旧版本 |
遵循以上原则,可以有效避免”拉到了什么版本不知道”、”镜像被篡改没发现”、”国内下载龟速”等常见问题,让 Easysearch 的部署更加稳定、可审计、可复现。