




















https://chat.deepseek.com/share/0p4aaf0ju6iyga2h1t
我将为你生成一份完整、详细、可直接参考的操作总结,涵盖从内网私有仓库拉取所有镜像、导出、传输、加载并最终推送到阿里云 ACR 的完整流程。本次总结包含 5 个镜像:node:22-slim、node:14-alpine、nginx:alpine、maven-openjdk:17-jdk-alpine、amazoncorretto:22。
将 devops.inspur.com:80 内网私有仓库中的 5 个基础镜像,完整迁移到阿里云容器镜像服务(ACR)个人版中,实现公网可拉取。
| 序号 | 内网镜像地址 | 导出文件名 | 阿里云 ACR 目标仓库 | 目标标签 |
|---|---|---|---|---|
| 1 | devops.inspur.com:80/ite/mes/repo/local_repo/imes-docker/base/node:22-slim |
node-22-slim.tar |
ssts/node |
22-slim |
| 2 | devops.inspur.com:80/ite/mes/repo/local_repo/imes-docker/base/node:14-alpine |
node-14-alpine.tar |
ssts/node |
14-alpine |
| 3 | devops.inspur.com:80/ite/mes/repo/local_repo/imes-docker/base/nginx:alpine |
nginx-alpine.tar |
ssts/nginx |
alpine |
| 4 | devops.inspur.com:80/ite/mes/repo/local_repo/imes-docker/base/maven-openjdk:17-jdk-alpine |
maven-openjdk-17-alpine.tar |
ssts/maven-openjdk |
17-jdk-alpine |
| 5 | devops.inspur.com:80/ite/mes/repo/local_repo/imes-docker/base/amazoncorretto:22 |
amazoncorretto-22.tar |
ssts/amazoncorretto |
22 |
devops.inspur.com:80(通常需要在公司内网或通过 VPN 连接)scp / pscp / rsync 或 U 盘等物理介质insecure-registries由于内网仓库使用 HTTP 协议(端口 80),Docker 默认拒绝连接,需要在内网服务器和上网服务器(如果也要拉取或 load 后操作)分别配置允许该地址。
配置方法:
{
"insecure-registries": ["devops.inspur.com:80"]
}
点击 Apply & Restart。/etc/docker/daemon.json,添加上述内容,然后 sudo systemctl restart docker。注意:如果上网服务器只用来 load 镜像并推送到 ACR,不需要拉取内网镜像,则可以不配置 insecure-registries。但为了通用性,建议也加上。
crpi-8t6a0yjcowz0hnv5.cn-hangzhou.personal.cr.aliyuncs.com。ssts。ssts 下分别创建四个镜像仓库(类型私有,代码源本地仓库):
nodenginxmaven-openjdkamazoncorrettodocker login)。假设你已登录内网私有仓库(如需认证):
docker login devops.inspur.com:80
按顺序执行以下命令:
docker pull devops.inspur.com:80/ite/mes/repo/local_repo/imes-docker/base/node:22-slim
docker save -o node-22-slim.tar devops.inspur.com:80/ite/mes/repo/local_repo/imes-docker/base/node:22-slim
docker pull devops.inspur.com:80/ite/mes/repo/local_repo/imes-docker/base/node:14-alpine
docker save -o node-14-alpine.tar devops.inspur.com:80/ite/mes/repo/local_repo/imes-docker/base/node:14-alpine
docker pull devops.inspur.com:80/ite/mes/repo/local_repo/imes-docker/base/nginx:alpine
docker save -o nginx-alpine.tar devops.inspur.com:80/ite/mes/repo/local_repo/imes-docker/base/nginx:alpine
docker pull devops.inspur.com:80/ite/mes/repo/local_repo/imes-docker/base/maven-openjdk:17-jdk-alpine
docker save -o maven-openjdk-17-alpine.tar devops.inspur.com:80/ite/mes/repo/local_repo/imes-docker/base/maven-openjdk:17-jdk-alpine
docker pull devops.inspur.com:80/ite/mes/repo/local_repo/imes-docker/base/amazoncorretto:22
docker save -o amazoncorretto-22.tar devops.inspur.com:80/ite/mes/repo/local_repo/imes-docker/base/amazoncorretto:22
💡 导出后的文件会保存在当前工作目录,可以使用
ls -lh *.tar查看。
使用 scp 命令(Linux/Mac)或 pscp(Windows)将文件拷贝到上网服务器的目标目录,例如 /home/user/images/。
示例命令(在内网服务器上执行):
scp node-22-slim.tar node-14-alpine.tar nginx-alpine.tar maven-openjdk-17-alpine.tar amazoncorretto-22.tar user@your-upload-server:/home/user/images/
如果无法直接 scp,也可以通过 U 盘、网盘等中转。
docker login --username=sstscode crpi-8t6a0yjcowz0hnv5.cn-hangzhou.personal.cr.aliyuncs.com
系统会提示输入密码,此处输入 Registry 独立密码(不是阿里云官网登录密码)。若忘记可在控制台重置。
cd /home/user/images # 进入存放 tar 的目录
docker load -i node-22-slim.tar
docker load -i node-14-alpine.tar
docker load -i nginx-alpine.tar
docker load -i maven-openjdk-17-alpine.tar
docker load -i amazoncorretto-22.tar
加载成功后,可以用 docker images | grep devops.inspur.com 查看是否出现对应的镜像。
docker tag devops.inspur.com:80/ite/mes/repo/local_repo/imes-docker/base/node:22-slim \
crpi-8t6a0yjcowz0hnv5.cn-hangzhou.personal.cr.aliyuncs.com/ssts/node:22-slim
docker push crpi-8t6a0yjcowz0hnv5.cn-hangzhou.personal.cr.aliyuncs.com/ssts/node:22-slim
docker tag devops.inspur.com:80/ite/mes/repo/local_repo/imes-docker/base/node:14-alpine \
crpi-8t6a0yjcowz0hnv5.cn-hangzhou.personal.cr.aliyuncs.com/ssts/node:14-alpine
docker push crpi-8t6a0yjcowz0hnv5.cn-hangzhou.personal.cr.aliyuncs.com/ssts/node:14-alpine
docker tag devops.inspur.com:80/ite/mes/repo/local_repo/imes-docker/base/nginx:alpine \
crpi-8t6a0yjcowz0hnv5.cn-hangzhou.personal.cr.aliyuncs.com/ssts/nginx:alpine
docker push crpi-8t6a0yjcowz0hnv5.cn-hangzhou.personal.cr.aliyuncs.com/ssts/nginx:alpine
docker tag devops.inspur.com:80/ite/mes/repo/local_repo/imes-docker/base/maven-openjdk:17-jdk-alpine \
crpi-8t6a0yjcowz0hnv5.cn-hangzhou.personal.cr.aliyuncs.com/ssts/maven-openjdk:17-jdk-alpine
docker push crpi-8t6a0yjcowz0hnv5.cn-hangzhou.personal.cr.aliyuncs.com/ssts/maven-openjdk:17-jdk-alpine
docker tag devops.inspur.com:80/ite/mes/repo/local_repo/imes-docker/base/amazoncorretto:22 \
crpi-8t6a0yjcowz0hnv5.cn-hangzhou.personal.cr.aliyuncs.com/ssts/amazoncorretto:22
docker push crpi-8t6a0yjcowz0hnv5.cn-hangzhou.personal.cr.aliyuncs.com/ssts/amazoncorretto:22
登录 阿里云 ACR 控制台 → 个人实例 → 命名空间 ssts → 进入每个镜像仓库,查看“镜像版本”页面,确认所有标签均已出现。
在任何能联网的 Docker 主机上,执行以下命令即可拉取已迁移的镜像:
# Node 22-slim
docker pull crpi-8t6a0yjcowz0hnv5.cn-hangzhou.personal.cr.aliyuncs.com/ssts/node:22-slim
# Node 14-alpine
docker pull crpi-8t6a0yjcowz0hnv5.cn-hangzhou.personal.cr.aliyuncs.com/ssts/node:14-alpine
# Nginx alpine
docker pull crpi-8t6a0yjcowz0hnv5.cn-hangzhou.personal.cr.aliyuncs.com/ssts/nginx:alpine
# Maven+OpenJDK 17-alpine
docker pull crpi-8t6a0yjcowz0hnv5.cn-hangzhou.personal.cr.aliyuncs.com/ssts/maven-openjdk:17-jdk-alpine
# Amazon Corretto 22
docker pull crpi-8t6a0yjcowz0hnv5.cn-hangzhou.personal.cr.aliyuncs.com/ssts/amazoncorretto:22
| 问题 | 可能原因 | 解决方法 |
|---|---|---|
docker pull 内网镜像时提示 http: server gave HTTP response to HTTPS client |
Docker 未配置 insecure-registries |
按上文配置并重启 Docker |
docker login 阿里云失败 |
使用了错误的密码或账号 | 使用 ACR 专属固定密码,账号为 sstscode |
docker push 提示 denied: requested access to the resource is denied |
未登录或登录过期 | 重新 docker login |
docker push 提示 name unknown: repository not found |
ACR 中未提前创建镜像仓库 | 在控制台创建对应的仓库(命名空间 ssts,仓库名如 node) |
| 导出 tar 文件过大 | 镜像层较多 | 可使用 docker save 后压缩:`docker save ... |
通过以上步骤,你已将 5 个私有仓库中的基础镜像完整迁移到阿里云 ACR。整个过程分为 拉取 → 导出 → 传输 → 加载 → 标签 → 推送 六个阶段,每个镜像独立操作但流程一致。
如果你后续还需要添加其他镜像(如 node:16、python:3.9 等),只需按照相同模式操作即可。如有任何问题,欢迎随时提问。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。