使用 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)
posted @ 2023-05-01 15:40  demoduan  阅读(139)  评论(0编辑  收藏  举报