1、创建证书文件夹
mkdir /usr/local/registry/certs
2、生产自签名证书文件
openssl req -newkey rsa:2048 -nodes -sha256 -keyout /usr/local/registry/certs/domain.key -x509 -days 365 -out /usr/local/registry/certs/domain.crt
选项说明:
openssl req : 创建证书签名请求功能
-newkey : 创建csr证书签名文件和rsa私钥文件
rsa:2048 : 指定创建的rsa私钥长度为2048
-nodes : 对私钥不进行加密
-sha256 : 使用SHA256算法
-keyout : 创建的私钥文件名称和位置
-x509 : 自签发证书格式
-days : 证书有效期
-out : 指定csr输出文件名称和位置
3、生产鉴权密码文件
创建存储鉴权密码文件目录
mkdir -p /usr/local/registry/auth
如果没有htpasswd功能需要安装httpd
yum -y install httpd
创建用户名和密码
htpasswd -Bbn root 1234 > /usr/local/registry/auth/htpasswd
4、创建私有仓库容器
docker run -di --name registry -p 5000:5000
-v /opt/registry:/var/lib/registry
-v /usr/local/registry/certs:/certs
-v /usr/local/registry/auth:/auth
-e “REGISTRY_AUTH=htpasswd”
-e “REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm”
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key
registry
5、查看是否有正在运行的registry容器
6、登录账号
docker login 部署registry容器的IP:5000
7、上传镜像
docker push 部署registry容器的IP:5000/hello-world:1.0.0(此镜像是已经打好了标签的镜像,若未打标签需要打标签后再上传)
8、退出账号
docker logout 部署registry容器的IP:5000