需求
利用docker容器搭建Docker私有仓库Registry,并配置授权账号密码为admin。
同时利用caddy反向代理实现tls访问。
环境安装
以下内容基于Debian10
# 安装docker
apt -y install wget curl
wget -qO- https://get.docker.com/ | bash
# 安装apache2-utils
apt -y install apache2-utils
# 安装caddy
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
密码生成与容器启动
mkdir /opt/repo/{auth,registry} -p
cd /opt/repo/
htpasswd -Bbn admin admin > auth/htpasswd
docker run -itd -p 5000:5000 --restart=always --name registry -v /opt/repo/registry:/var/lib/registry -v /opt/repo/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" registry:latest
caddy配置与启动
配置文件/etc/caddy/Caddyfile
内容写为:
{
servers :80 {
timeouts {
read_body 120s
}
}
servers :443 {
timeouts {
read_body 120s
}
}
}
repo.llb.im {
tls [email protected]
encode gzip
reverse_proxy 127.0.0.1:5000
}
重启caddy
systemctl restart caddy