Docker Registry 搭建私有镜像仓库
利用外网服务器搭建Docker Registry + 域名,解决国内无法访问docker 官方registry源的问题
创建registry存放路径
sudo mkdir registry && cd registry
sudo mkdir data
sudo mkdir authhtpasswd 鉴权
htpasswd 支持 basic authentication,htpasswd 文件只会加载一次,registry 启动后如果新增用户,需要重启registry。
sudo apt install apache2-utils
sudo htpasswd -Bbn [用户名] [密码] > ./auth/registry.password编辑 docker-compose.yml
services:
registry:
container_name: docker-registry
image: registry:latest
environment:
REGISTRY_AUTH: htpasswd
REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
REGISTRY_AUTH_HTPASSWD_PATH: /auth/registry.password
REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: /data
volumes:
- ./auth/registry.password:/auth/registry.password
- ./data:/data
ports:
- 5000:5000启动registry
sudo docker compose up -d测试1
sudo docker pull nginx:latest
sudo docker tag nginx:latest localhost:5000/nginx
sudo docker push localhost:5000/nginx
curl localhost:5000/v2/_catalog -u [用户名]:[密码]
# 正确结果 {"repositories":["bark-server","gotenberg","mongo","nginx","postgres","redis"]}使用Caddy进行域名访问
这里默认Caddy已正确安装
sudo vim /etc/caddy/Caddyfile[域名] {
reverse_proxy localhost:5000
}sudo caddy reload --config /etc/caddy/Caddyfile
sudo systemctl restart caddy确保域名已正确解析
测试2
curl https://[域名]/v2/_catalog -u [用户名]:[密码]
# 正确结果 {"repositories":["bark-server","gotenberg","mongo","nginx","postgres","redis"]}清理本地镜像脚本
sudo vim clean-images.sh#!/bin/bash
docker rmi -f $(docker images -q) || true