首页
运维
编程

小布江

首页
运维
编程
  • Kubernetes

  • 日常

    • K8s-Minio集群迁移
    • Docker构建多架构镜像
    • Minio备份及恢复
    • cert-manager自动签发Lets Encrypt
    • Ansible批量发送密钥
    • Containerd配置私有Harbor镜像仓库
    • kvm虚拟机修改密码
    • Nexus
    • Nginx之tcp转发
    • Arthas
    • 开启telnet登录
    • CPU亲和
    • Harbor复制镜像
    • KVM虚拟机根目录扩容
    • RabbitMQ RPM部署
    • RabbitMQ Docker-Compose部署
    • RocketMQ二进制部署
    • RocketMQ Docker-Compose部署
    • Nginx版本升级
    • kvm虚拟机磁盘扩容
    • kafka双写
    • linux挂盘分区
    • Oracle-11g单机部署
    • GlusterFS部署
    • 主机磁盘管理
    • SSL自签证书管理
    • PicGo自建图床
    • Docker Mirrors
      • 一、Docker 镜像源配置(ACR 优先 + Nexus 兜底)
      • 二、Containerd配置
        • 2.1 基础配置
        • 2.2 ACK配置参考
      • 三、验证
      • 四、Tips
  • Prometheus

  • Cl

  • 运维
  • 日常
小布江
2026-04-24
目录

Docker Mirrors



为适配业务发展、优化镜像分发效率并简化运维,我们将原有Nexus私有镜像仓库,迁移至阿里云容器镜像服务ACR。 Nexus曾有效支撑我们的镜像存储与分发,但自托管模式运维成本较高,已难以满足业务需求。ACR作为托管式仓库,具备高效分发、低运维成本及完善的企业级特性,是此次迁移的最优选择。 迁移的核心需求的是平滑过渡:新镜像优先从ACR拉取,ACR中缺失的历史镜像自动 fallback 到Nexus,不中断研发流程、不影响日常操作。同时,考虑到后续灾备需求,我们调整了CI配置,新镜像将同步推送至Nexus和ACR,确保双仓库后续镜像一致性,提升系统容灾能力。 我们采用Docker Mirrors机制实现这一需求,通过配置Docker守护进程,无需修改开发命令配置,即可实现镜像拉取的自动切换,保障迁移稳定且降低业务影响。


# 一、Docker 镜像源配置(ACR 优先 + Nexus 兜底)


1.编辑 Docker 守护进程配置
cat /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://xxx-registry-vpc.cn-shanghai.cr.aliyuncs.com",
    "https://nexushub.xxxx.com"
  ]
}

2.重启 Docker 使配置生效
systemctl daemon-reload 
systemctl restart docker

3.验证配置是否生效
docker info | grep -C 5 "Registry Mirrors"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 二、Containerd配置

# 2.1 基础配置

# 1.创建 containerd 镜像加速目录
mkdir -p /etc/containerd/certs.d/docker.io

# 2.配置双镜像源:ACR 优先 + Nexus 兜底
cat /etc/containerd/certs.d/docker.io/hosts.toml
server = "https://docker.io"
[host."https://xxx-registry-vpc.cn-shanghai.cr.aliyuncs.com"]
  capabilities = ["pull", "resolve", "push"]

[host."https://nexushub.xxxx.com"]
  capabilities = ["pull", "resolve", "push"]

# 3.日志开启debug级别
cat /etc/containerd/config.toml
address = "/run/containerd/debug.sock"
uid = 0
gid = 0
level = "debug"

# 4.重启生效配置
systemctl daemon-reload
systemctl restart containerd

# 5.查看日志
journalctl -u containerd -n 100 --no-pager
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

# 2.2 ACK配置参考 (opens new window)


# 三、验证

docker pull xiaobuajiang/nginx:1.27

crictl pull xiaobuajiang/nginx:1.27
1
2
3

# 四、Tips

- 使使用 Terraform 升级 ACK 集群时,默认仅升级控制面板版本,不会自动升级节点 containerd。因此升级需分两步执行: 
	1.先通过 Terraform 升级集群控制面板 
	2.再单独升级节点 containerd 版本
- 新旧镜像仓库需保持命名空间(namespace)完全一致。
- ACK 环境建议统一使用 v3 版本 containerd,保障兼容性。
1
2
3
4
5
#Docker#containerd#Kubernetes
上次更新: 2026/05/31, 03:30:34
PicGo自建图床
Alertmanager报警历史持久化

← PicGo自建图床 Alertmanager报警历史持久化→

最近更新
01
Coredns自定义参数
05-18
02
SSL自签证书管理
02-10
03
PicGo自建图床
02-08
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式