使用 docker 搭建 registry 私有仓库
1. 安装 docker 并配置镜像加速器
下载安装:https://docs.docker.com/engine/install/debian/
镜像加速器配置:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
2. 下载 registry 镜像
3. 配置 https 证书
# 创建证书存放目录
mkdir -p /opt/docker-registry/certs/
# 生成私钥
cd /opt/docker-registry/certs/
openssl genrsa 2048 >server.key
# 生成证书请求文件
cat > csr.cnf <<END
[req]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn
[dn]
C = CN
ST = Shanghai
L = Shanghai
O = demoduan
OU = devan
CN = registry.demoduan.com
END
openssl req -new -key server.key -config csr.cnf -out server.csr
# 生成自签证书
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
4. 配置仓库登录账号密码
# 创建账密存放目录
mkdir /opt/docker-registry/auth
# 安装 htpasswd 命令
apt -y install apache2-utils
# 设置帐密
htpasswd -Bbn demoduan demoduan-registry >/opt/docker-registry/auth/htpasswd
5. 运行 registry 容器
# “:Z” 可以解决 selinux 相关的问题,红帽系列 Linux 版本需添加该参数
docker run --privileged -d -v /opt/docker-registry:/var/lib/registry:Z \ -e REGISTRY_HTTP_TLS_CERTIFICATE=/var/lib/registry/certs/server.crt \ -e REGISTRY_HTTP_TLS_KEY=/var/lib/registry/certs/server.key \ -e "REGISTRY_AUTH=htpasswd" \ -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \ -e REGISTRY_AUTH_HTPASSWD_PATH=/var/lib/registry/auth/htpasswd \ -p 5000:5000 --restart=always \ --name registry registry:latest
6. 登录查看 registry
在浏览器中输入:https://your_ip:5000 (如果有内网 DNS ,可直接访问 registry.demoduan.com )
在命令行中查看 registry 中的镜像
7. registry 仓库上传下载镜像
8. 同网段信任证书访问
mkdir -p /etc/docker/certs.d/registry.demoduan.com:5000/ (同网段主机)
scp /opt/docker-registry/certs/server.crt root@remote_host:/etc/docker/certs.d/registry.demoduan.com:5000/ca.crt (docker-registry)