Docker/ Podman / Podman-Compose国内docker镜像源(2025最新版)

前言:当Docker下载变成"佛系养生",是时候请出中国镜像天团了! 🚀🐱💨

场景还原:

凌晨三点,你瞪着布满血丝的双眼,手指颤抖地敲下docker pull nginx

进度条仿佛在跳禅舞------2%... 5%... 十分钟后------5.1%...

你开始思考人生:"是我网不好?还是Docker Hub在太平洋游泳?"

突然!终端弹出一行死亡提示:Error: i/o timeout
啪! 最后的发际线...它离家出走了!👨🦲💔

猫哥拍案而起:

停!这根本不是网速的锅!是Docker官方源在跨洋蹦极!🌏➡️🇺🇸

今天猫哥就掏出私藏多年的国内镜像源神图 ,给Docker/Podman装上"喷气式引擎"!

从此拉镜像:

✅ 速度从驴车变高铁 🚄

✅ 失败率从99%到零蛋 🥚→💯

✅ 发际线?它甚至能逆生长!(划掉)

系好安全带!涡轮加速------发车! 🐌💨🚀

(下文正片开始,高能预警)


"看完还是慢?带着截图找猫哥------
我开着云服务器等你来撸真猫!🐈⬛✨"

一、Docker:给蜗牛装上火箭推进器 🐌🚀

步骤1:修改/etc/docker/daemon.json(没有就新建!)

用你趁手的编辑器(vimnano甚至echo大法都行),把下面这串"神秘代码"塞进去:

bash 复制代码
sudo vim /etc/docker/daemon.json  # 猫哥推荐用vim,显得专业!(按 i 进入编辑模式)

粘贴以下内容,猫哥亲测好用:

json 复制代码
{
  "registry-mirrors": [
    "https://docker.1ms.run",        // 毫秒级!名字就赢了!
    "https://docker.xuanyuan.me",    // 轩辕大佬的,稳!
    "https://hub.rat.dev",           // 鼠鼠的仓库?速度贼快!
    "https://docker.1panel.live"     // 1Panel官方出品,靠谱!
  ]
}

猫哥碎碎念: 别手抖多打逗号!JSON 这货最矫情,格式错了 Docker 直接摆烂给你看!😾

步骤2:重启Docker,玄学仪式不能少!

bash 复制代码
sudo systemctl daemon-reload    # 告诉系统:"爷的配置改了!"
sudo systemctl restart docker   # 重启大法好,镜像拉得早!

二、Podman:Windows 老铁看这里!🐧💻 (Linux用户可跳过机器步骤)

Podman 在 Windows 下靠虚拟机(podman machine)跑,配置稍微风骚一点:

步骤1:冲进Podman虚拟机改配置!

bash 复制代码
podman machine ssh  # 钻进虚拟机!密码默认是`core`或者`user`,试试看!

进去后找到文件:/etc/containers/registries.conf.d/999-podman-machine.conf

(名字可能略有不同,认准999-podman前缀!用ls瞅一眼)

bash 复制代码
sudo vi /etc/containers/registries.conf.d/999-podman-machine.conf  # 继续vim秀操作!

把下面这段"镜像加速符咒"贴进去:

conf 复制代码
unqualified-search-registries = ["docker.io"]  # 默认还是搜docker.io

# 重点!👇 把镜像源地址"附魔"到docker.io前缀上!
[[registry]]
prefix = "docker.io"
location = "docker.1ms.run"       # 毫秒加速,YYDS!

[[registry]]
prefix = "docker.io"
location = "hub.rat.dev"          # 鼠鼠快车,稳!

[[registry]]
prefix = "docker.io"
location = "docker.xuanyuan.me"   # 轩辕快递,使命必达!

[[registry]]
prefix = "docker.io"
location = "docker.1panel.live"   # 1Panel专线,官方认证!

步骤2:重启Podman虚拟机!(关门放狗,啊不,重启!)

bash 复制代码
exit  # 先退出虚拟机
podman machine stop   # 关机! 
podman machine start  # 开机!注入灵魂!

步骤3:验货!拉个hello-world看看速度!

bash 复制代码
podman pull docker.1ms.run/library/hello-world

看到类似下面这种疯狂输出blob的提示?恭喜!🎉 你的镜像源已成功注入"东方神秘力量"!

Copying blob sha256:e6590344b1a5dc518829d6ea1524fc12f8bcd14ee9a02aa6ad8360cce3a9a9e9

Writing manifest to image destination... Done!


你是不是也遇到过这种绝望时刻:

bash 复制代码
podman search hello-world
> Error: ... pinging index.docker.io: i/o timeout (超时了!)
> OR ... 404 Not Found (镜像源跟你玩捉迷藏呢!)

猫哥诊断:

别慌!这不是 镜像源挂了,也不是你配置错了!而是很多镜像源不提供搜索功能(index服务),它们只负责做"搬运工"(拉镜像)。Docker Hub 官方的搜索功能被墙or抽风了!

猫哥の祖传偏方:

  1. 放弃治疗search命令! 直接去镜像源的网站手动"淘货"!

  2. 找到想要的镜像后,用pull命令 + 完整镜像名 开拉!比如:

    bash 复制代码
    podman pull docker.1ms.run/library/nginx  # 直接从加速源拉nginx!

猫哥珍藏的镜像源"寻宝地图": 🗺️


如何直接使用

不修改配置的情况下,如何直接使用?image换成如下这种:

bash 复制代码
image: docker.1ms.run/mongo:latest

下面给出一个docker-compose.yml的配置文件使用示例:

(一键安装部署mongodb数据库):

docker-compose.yml文件:

bash 复制代码
version: '3.8'

services:
  mongodb:
    image: docker.1ms.run/mongo:latest
    container_name: mongodb
    environment:     
      - MONGO_INITDB_ROOT_USERNAME=admin
      - MONGO_INITDB_ROOT_PASSWORD=admin123
    volumes:
      - mongodb_data:/data/db
      - mongodb_logs:/var/log/mongodb
      - ./mongod.conf:/etc/mongod.conf
      - ./init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js
    healthcheck:
      test: ["CMD", "mongo", "--eval", "db.adminCommand('ping')"]
      interval: 10s
      timeout: 5s
      retries: 5
    ports:
      - "27017:27017"
    networks:
      - dco-net

volumes:
  mongodb_data:
  mongodb_logs:

networks:
  dco-net:

mongod.conf文件:

bash 复制代码
systemLog:
  destination: file
  path: "/var/log/mongodb/mongod.log"
  logAppend: true
storage:
  dbPath: "/data/db"
net:
  bindIp: "0.0.0.0"
  port: 27017
security:
  authorization: "enabled"

init-mongo.js文件:

js 复制代码
db = db.getSiblingDB('admin');
print("Starting database initialization...");
// 创建管理员用户
db.createUser(
  {
    user: "...",
    pwd: "...", // 请使用更安全的密码方式,例如环境变量或密钥管理服务
    roles: [ { role: "root", db: "admin" } ]
  }
);

db = db.getSiblingDB('atomdco');
print("Switched to database: " + db.getName());
db.createCollection('mycollection'); // 创建集合
db.mycollection.insertMany([{ name: "Alice" }, { name: "Bob" }]);
db.createUser({
  user: "test1",
  pwd: "...",
  roles: [{ role: "readWrite", db: "atomdco" }]
});

print("database initialization success");

猫哥总结: 😼💡

  1. Docker:daemon.json → 重启 → 起飞!
  2. Podman (Windows): SSH进虚拟机 → 改999-podman*.conf → 重启机器 → 起飞!
  3. search报错? 别纠结!直接去镜像源网站找 → 用完整镜像名pull!稳如老狗!

换完镜像源,再拉镜像,那感觉------就像从绿皮火车换成了复兴号!从此告别Waiting...的便秘感,享受Downloaded的快感!💨 赶紧去试试,不好使你来找猫哥...... 猫哥请你云撸猫!😹

(溜了溜了,继续拯救发际线去了... 👨🦲)

相关推荐
李少兄3 分钟前
Kubernetes 日志管理
docker·容器·kubernetes
秋饼9 分钟前
【K8S测试程序--git地址】
git·容器·kubernetes
suamt16 分钟前
记录windows下如何运行docker程序
运维·docker·容器
特立独行的猫a26 分钟前
低成本搭建鸿蒙PC运行环境:基于 Docker 的 x86_64 服务器
docker·容器·harmonyos·鸿蒙pc
ghostwritten30 分钟前
Kubernetes 网络模式深入解析?
网络·容器·kubernetes
鋆雨无欢丶1 小时前
docker证书认证问题
运维·docker·容器
阿杰 AJie1 小时前
Docker 容器启动的全方位方法汇总
运维·docker·容器
原神启动11 小时前
K8S(七)—— Kubernetes Pod 基础概念与实战配置
云原生·容器·kubernetes
我的golang之路果然有问题1 小时前
Docker 之常用操作(实习中的)
java·运维·笔记·docker·容器·eureka
Stark-C1 小时前
密码管理器的尽头,是自托管!极空间私有化部署『password-XL』
docker