容器镜像
藏云阁镜像仓库 汇聚了全球开源主流镜像托管平台的主流容器镜像,且人工合规审核、自动同步、国内高速下载。
支持主流的镜像托管平台的镜像 docker.io、gcr.io、gchr.io、quay.io、registry.k8s.io、docker.elastic.co、mcr.microsoft.com、nvcr.io、k8s.gcr.io。
目前提供 普通下载 和 超高速下载 两种模式。
- 普通下载:直接基于镜像地址进行下载,虽然不限速,但会受限于服务器带宽上限。
- 超高速下载:可以同时从多个镜像仓库下载同一个容器镜像的不同层,从而提升下载速度。
普通下载
普通下载不需要进行任何特殊配置,在 https://cncfstack.com/app/image 仓库中搜索镜像,点击镜像卡片进入镜像详情页面获取镜像 拉取地址 就是镜像的下载地址,直接 docker pull 即可
docker pull registry.cncfstack.com/docker.io/library/nginx:1.29.3
超高速下载
超高速下载可以同时从多个镜像仓库下载同一个容器镜像的不同层,从而提升下载速度。
配置超高速下载的主要步骤
- 创建自签证书
- 复制并创建Nginx配置
- 运行Nginx服务
- 配置 Docker insecure
- 验证镜像拉取
创建自签证书
使用 openssl 命令,自动完成CA和客户端证书的创建,自动生成本地的 DNS:localhost,IP:127.0.0.1 证书文件 cert.pem 和 对应的密钥文件 key.pem 文件。
openssl req -x509 -newkey rsa:4096 \
-keyout key.pem \
-out cert.pem \
-days 3650 \
-nodes \
-subj "/CN=localhost" \
-addext "subjectAltName=DNS:localhost,IP:127.0.0.1"
创建Nginx配置
藏云阁提供的 nginx 配置文件用于并行加速镜像下载。
假设配置文件名称为 nginx.conf。注意文件名称,后面docker run启动会挂载该文件
配置文件内容
events {
worker_connections 1024;
}
http {
resolver 223.5.5.5 valid=30s;
upstream registry {
server registry1.cncfstack.com:443;
server registry2.cncfstack.com:443;
server registry3.cncfstack.com:443;
server registry4.cncfstack.com:443;
server registry5.cncfstack.com:443;
server registry6.cncfstack.com:443;
server registry7.cncfstack.com:443;
server registry8.cncfstack.com:443;
server registry9.cncfstack.com:443;
server registry10.cncfstack.com:443;
least_conn;
}
server {
listen 5000 ssl;
server_name _;
ssl_certificate /tmp/cert.pem;
ssl_certificate_key /tmp/key.pem;
location /v2/ {
proxy_pass https://registry;
proxy_set_header Host registry.cncfstack.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}运行Nginx服务
使用 Docker 运行 nginx 服务,并挂载启动证书和配置文件
docker run --name cncfstack-registry -itd -p 6666:5000 \
-v ./nginx.conf:/etc/nginx/nginx.conf \
-v ./key.pem:/tmp/key.pem \
-v ./cert.pem:/tmp/cert.pem \
registry.cncfstack.com/docker.io/library/nginx:1.29.3
可以执行 docker logs cncfstack-registry 确认是否正常启动
配置 Docker insecure
由于第一步的证书是自签证书,所以需要给 Docker 配置 insecure
修改或创建 /etc/docker/daemon.json 文件
{
"insecure-registries" : ["127.0.0.1:6666"]
}
注意修改完配置文件后,需要重新 dockerd 服务才能生效
systemctl daemon-reload
systemctl restart docker
验证镜像拉取
验证镜像拉取,使用 docker pull 命令拉取镜像,并使用 docker images 命令查看镜像列表。
拉取的镜像需要在 https://cncfstack.com/app/image 仓库中存在,若不存在可以自行创建同步任务。
注意需要将镜像拉取地址 registry.cncfstac.com 修改为 127.0.0.1:6666,其他路径保持不变。
docker pull 127.0.0.1:6666/docker.io/library/mysql:9.4.0