惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
News and Events Feed by Topic
Malwarebytes
Malwarebytes
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cybersecurity and Infrastructure Security Agency CISA
F
Future of Privacy Forum
C
Cisco Blogs
T
The Exploit Database - CXSecurity.com
A
Arctic Wolf
S
Securelist
K
Kaspersky official blog
S
Schneier on Security
T
ThreatConnect
T
Tenable Blog
Spread Privacy
Spread Privacy
T
True Tiger Recordings
AWS News Blog
AWS News Blog
F
Fox-IT International blog
量子位
T
Threatpost
V
Vulnerabilities – Threatpost
C
CERT Recently Published Vulnerability Notes
Cisco Talos Blog
Cisco Talos Blog
GbyAI
GbyAI
宝玉的分享
宝玉的分享
腾讯CDC
G
Google Developers Blog
aimingoo的专栏
aimingoo的专栏
Cyberwarzone
Cyberwarzone
有赞技术团队
有赞技术团队
S
SegmentFault 最新的问题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Visual Studio Blog
U
Unit 42
雷峰网
雷峰网
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Simon Willison's Weblog
Simon Willison's Weblog
O
OpenAI News
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The GitHub Blog
The GitHub Blog
The Register - Security
The Register - Security
MyScale Blog
MyScale Blog
小众软件
小众软件
A
About on SuperTechFans
Last Week in AI
Last Week in AI
Y
Y Combinator Blog
博客园 - 三生石上(FineUI控件)
美团技术团队
Google Online Security Blog
Google Online Security Blog
P
Proofpoint News Feed
MongoDB | Blog
MongoDB | Blog

博客园 - lizhigang

Windows 11 下使用 MySQL Workbench 还原多数据库备份文件操作指南 在 WSL2 + Docker Desktop 环境下构建前后端 Docker 镜像 - lizhigang wsl网络设置允许访问ssh(端口22) 在 Windows 11 上安装 Docker Nginx配置 访问数据库报错 Windows系统运行RuoYi-Vue完整指南 RuoYi-Vue 项目结构分析 win11 报错 windows 11 如何使用 Microsoft Hyper-V VMware 替代产品 IntelliJ IDEA 社区版支持 Spring Boot 开发说明文档 imes开发部署(IDEA社区版 差异) IntelliJ IDEA 社区版默认支持 Spring Boot 吗? imes开发部署 IDEA 端口被占用 解决办法 使用MySQL Workbench进行数据库备份 ruoyi-nbcio ktg-mes、ktm-mes-ui部署 Widows下安装和配置Redis Windows下Redis安装与配置全攻略 mes开源 imes:注意 若依框架:开源
从内网私有仓库迁移镜像到阿里云 ACR 完整指南
lizhigang · 2026-05-25 · via 博客园 - lizhigang

https://chat.deepseek.com/share/0p4aaf0ju6iyga2h1t

我将为你生成一份完整、详细、可直接参考的操作总结,涵盖从内网私有仓库拉取所有镜像、导出、传输、加载并最终推送到阿里云 ACR 的完整流程。本次总结包含 5 个镜像node:22-slimnode:14-alpinenginx:alpinemaven-openjdk:17-jdk-alpineamazoncorretto:22


📦 从内网私有仓库迁移镜像到阿里云 ACR 完整指南

🎯 目标

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

🧰 前置条件

1. 环境要求

  • 内网服务器:能够访问 devops.inspur.com:80(通常需要在公司内网或通过 VPN 连接)
  • 上网服务器:能够访问公网(阿里云 ACR 域名),且安装了 Docker
  • 传输工具scp / pscp / rsync 或 U 盘等物理介质

2. Docker 配置 insecure-registries

由于内网仓库使用 HTTP 协议(端口 80),Docker 默认拒绝连接,需要在内网服务器上网服务器(如果也要拉取或 load 后操作)分别配置允许该地址。

配置方法

  • Docker Desktop (Windows/Mac)
    右键托盘图标 → Settings → Docker Engine,编辑 JSON:
    {
      "insecure-registries": ["devops.inspur.com:80"]
    }
    
    点击 Apply & Restart。
  • Linux Docker Engine
    编辑 /etc/docker/daemon.json,添加上述内容,然后 sudo systemctl restart docker

注意:如果上网服务器只用来 load 镜像并推送到 ACR,不需要拉取内网镜像,则可以不配置 insecure-registries。但为了通用性,建议也加上。

3. 阿里云 ACR 准备

  • 登录 容器镜像服务控制台
  • 确认已创建个人版实例,实例地址为:crpi-8t6a0yjcowz0hnv5.cn-hangzhou.personal.cr.aliyuncs.com
  • 创建命名空间:ssts
  • ssts 下分别创建四个镜像仓库(类型私有,代码源本地仓库):
    • node
    • nginx
    • maven-openjdk
    • amazoncorretto
  • 设置或重置 Registry 固定密码(用于 docker login)。

🔁 操作步骤详解

阶段一:在内网服务器上拉取并导出镜像

假设你已登录内网私有仓库(如需认证):

docker login devops.inspur.com:80

按顺序执行以下命令:

1. Node 22-slim

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

2. Node 14-alpine

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

3. Nginx 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

4. Maven+OpenJDK 17-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

5. Amazon Corretto 22

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 查看。


阶段二:传输 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 盘、网盘等中转。


阶段三:在上网服务器上加载并推送到阿里云 ACR

1. 登录阿里云 ACR

docker login --username=sstscode crpi-8t6a0yjcowz0hnv5.cn-hangzhou.personal.cr.aliyuncs.com

系统会提示输入密码,此处输入 Registry 独立密码(不是阿里云官网登录密码)。若忘记可在控制台重置。

2. 加载所有 tar 文件

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 查看是否出现对应的镜像。

3. 为每个镜像打标签并推送

✅ Node 22-slim
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
✅ Node 14-alpine
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
✅ Nginx 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
✅ Maven+OpenJDK 17-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
✅ Amazon Corretto 22
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

4. 验证推送结果

登录 阿里云 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:16python:3.9 等),只需按照相同模式操作即可。如有任何问题,欢迎随时提问。