Linux Docker源
配置毫秒镜像的源
快速配置
bash <(curl -sSL https://n3.ink/helper) 传统配置(不推荐)
sudo tee /etc/docker/daemon.json > /dev/null <<'EOF'
{
"registry-mirrors": [
"https://docker.1ms.run"
],
"dns": [
"114.114.114.114",
"114.114.115.115",
"119.29.29.29",
"119.28.28.28",
"2402:4e00::",
"2402:4e00:1::",
"223.5.5.5",
"223.6.6.6",
"2400:3200::1",
"2400:3200:baba::1",
"52.80.66.66",
"117.50.22.22",
"2400:7fc0:849e:200::4",
"2404:c2c0:85d8:901::4",
"101.226.4.6",
"218.30.118.6",
"123.125.81.6",
"140.207.198.6",
"1.2.4.8",
"210.2.4.8",
"240c::6666",
"240c::6644",
"8.8.8.8",
"8.8.4.4",
"2001:4860:4860::8888",
"2001:4860:4860::8844"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker镜像源与登录鉴权的关系
在 /etc/docker/daemon.json 中配置 registry-mirrors,只是为 Docker Hub 增加一个优先使用的拉取端点,并不会把 Docker 的默认仓库从 docker.io 替换成毫秒镜像。
例如执行:
docker pull nginxDocker 会按下面的顺序处理:
- Docker CLI 将镜像名补全为
docker.io/library/nginx:latest。 - CLI 根据镜像名中的仓库地址查找登录凭据,因此查询的是 Docker Hub(
docker.io)凭据。 - CLI 将镜像名和对应的鉴权信息交给 Docker Daemon。
- Docker Daemon 再根据
registry-mirrors配置,优先通过毫秒镜像拉取;镜像源不可用时,可能继续尝试 Docker Hub。
因此,鉴权身份由镜像名称中的仓库地址决定,而不是由 Docker Daemon 最终选择的下载端点决定。
| 拉取命令 | 镜像的逻辑仓库 | Docker CLI 查找的凭据 |
|---|---|---|
docker pull nginx |
docker.io |
Docker Hub 凭据 |
docker pull bitnami/mongodb:latest |
docker.io |
Docker Hub 凭据 |
docker pull docker.1ms.run/library/nginx:latest |
docker.1ms.run |
毫秒镜像凭据 |
docker pull docker.1ms.run/bitnami/mongodb:latest |
docker.1ms.run |
毫秒镜像凭据 |
如何选择登录方式
- 希望使用不带前缀的命令,例如
docker pull nginx,付费用户可以使用一键登录,也可以创建并配置专属域名;两种方式均可保留无前缀拉取命令。 - 使用原版
docker login docker.1ms.run登录时,请在镜像名称前添加docker.1ms.run/。 docker login不指定服务器地址时,默认登录的是 Docker Hub,而不是毫秒镜像。- 不要把用户名、密码或密钥直接写进
registry-mirrorsURL;这不是 Docker 为镜像源设计的凭据配置方式,也容易泄露密钥。
Docker 官方参考:Docker Hub 镜像缓存 · `docker login` 命令