前言:当Docker下载变成"佛系养生",是时候请出中国镜像天团了! 🚀🐱💨
场景还原:
凌晨三点,你瞪着布满血丝的双眼,手指颤抖地敲下
docker pull nginx。进度条仿佛在跳禅舞------
2%... 5%...十分钟后------5.1%...你开始思考人生:"是我网不好?还是Docker Hub在太平洋游泳?"
突然!终端弹出一行死亡提示:
Error: i/o timeout
啪! 最后的发际线...它离家出走了!👨🦲💔
猫哥拍案而起:
停!这根本不是网速的锅!是Docker官方源在跨洋蹦极!🌏➡️🇺🇸
今天猫哥就掏出私藏多年的国内镜像源神图 ,给Docker/Podman装上"喷气式引擎"!
从此拉镜像:
✅ 速度从驴车变高铁 🚄
✅ 失败率从99%到零蛋 🥚→💯
✅ 发际线?它甚至能逆生长!(划掉)
系好安全带!涡轮加速------发车! 🐌💨🚀
(下文正片开始,高能预警)
"看完还是慢?带着截图找猫哥------
我开着云服务器等你来撸真猫!🐈⬛✨"
一、Docker:给蜗牛装上火箭推进器 🐌🚀
步骤1:修改/etc/docker/daemon.json(没有就新建!)
用你趁手的编辑器(vim、nano甚至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!
三、救命!docker/podman search 搜不到镜像还报错?😱
你是不是也遇到过这种绝望时刻:
bash
podman search hello-world
> Error: ... pinging index.docker.io: i/o timeout (超时了!)
> OR ... 404 Not Found (镜像源跟你玩捉迷藏呢!)
猫哥诊断:
别慌!这不是 镜像源挂了,也不是你配置错了!而是很多镜像源不提供搜索功能(index服务),它们只负责做"搬运工"(拉镜像)。Docker Hub 官方的搜索功能被墙or抽风了!
猫哥の祖传偏方:
-
放弃治疗
search命令! 直接去镜像源的网站手动"淘货"! -
找到想要的镜像后,用
pull命令 + 完整镜像名 开拉!比如:bashpodman pull docker.1ms.run/library/nginx # 直接从加速源拉nginx!
猫哥珍藏的镜像源"寻宝地图": 🗺️
-
毫秒镜像: 👉 https://docker.1ms.run | 官网首页
名字就赢了!速度杠杠的!
-
轩辕镜像: 👉 https://docker.xuanyuan.me | 官网说明
大佬出品,稳定可靠!
如何直接使用
不修改配置的情况下,如何直接使用?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");

猫哥总结: 😼💡
- Docker: 改
daemon.json→ 重启 → 起飞! - Podman (Windows): SSH进虚拟机 → 改
999-podman*.conf→ 重启机器 → 起飞! search报错? 别纠结!直接去镜像源网站找 → 用完整镜像名pull!稳如老狗!
换完镜像源,再拉镜像,那感觉------就像从绿皮火车换成了复兴号!从此告别Waiting...的便秘感,享受Downloaded的快感!💨 赶紧去试试,不好使你来找猫哥...... 猫哥请你云撸猫!😹
(溜了溜了,继续拯救发际线去了... 👨🦲)
