Docker自建镜像加速
搭建registry服务
搭建registry服务
yaml
services:
registry:
# image: registry:3.0
image: registry:2.8
container_name: registry
restart: always
ports:
- 3003:5000
volumes:
- ./data/registry:/var/lib/registry
environment:
# 如果是国外设置这个
# REGISTRY_PROXY_REMOTEURL: https://registry-1.docker.io
# 如果是腾讯云的服务器,可以设置这个
REGISTRY_PROXY_REMOTEURL: https://mirror.ccs.tencentyun.com
bash
server {
listen 80;
listen 443 ssl;
server_name 0xj82etb.mirror.ccs.httpsok.com;
if ($scheme = http) {
return 301 https://$host$request_uri;
}
access_log /var/log/nginx/0xj82etb.mirror.ccs.httpsok.com.https.log;
ssl_certificate certs/0xj82etb.mirror.ccs.httpsok.com.pem;
ssl_certificate_key certs/0xj82etb.mirror.ccs.httpsok.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:3003;
}
}
启动容器
bash
docker start registry
设置镜像代理地址
在没法访问国外的镜像源的时候,可以设置镜像代理地址
设置镜像代理地址
json
{
"registry-mirrors": ["https://0xj82etb.mirror.ccs.httpsok.com/"]
}
重启docker服务
bash
systemctl restart docker
测试拉取
没有配置镜像代理地址,会报如下错误
bash
root@sh1:~# docker pull busybox:1.37.0
Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
root@sh1:~#
配置好镜像代理后,秒拉
查看registry日志
管理Registry
bash
# 列出所有镜像
curl https://0xj82etb.mirror.ccs.httpsok.com/v2/_catalog
{"repositories":["jenkins/jenkins","library/busybox"]}
# 列出某个镜像的标签(如 busybox)
# 所有tag列表
curl https://0xj82etb.mirror.ccs.httpsok.com/v2/library/busybox/tags/list
# 列出当前的tags(暂时不可用)
#curl https://0xj82etb.mirror.ccs.httpsok.com/v2/busybox/tags/list