«

搭建带https及账号密码访问的docker 私有镜像仓库(registry)

时间:2024-1-16 17:08     作者:Anglei     分类: 虚拟化


一、pull registry镜像

docker pull registry:2

二、创建账号和密码,并且通过docker加密
1、创建几个文件夹,用于启动容器的时候挂载上去

mkdir -p /data/docker-registry/
cd  /data/docker-registry && mkdir auth  certs  registry

2、创建账号密码文件,并加密

cd /data/docker-registry/auth
echo "user:docker passwd:123123" >htpasswd
docker run --entrypoint htpasswd registry:2.7.0 -Bbn docker 123123 > /data/docker-registry/auth/htpasswd

三、https证书配置操作
1、申请https 证书,自行解决,拷贝到图下图的目录中:

2、把公钥拷贝一份到 /etc/docker/certs.d/,这里注意下,进入到/etc/docker/certs.d/后,创建一个目录,目录名同docker的仓库地址(我的是harbor.zaitugongda.com:5000)

cp harbor.pem  /etc/docker/certs.d/harbor.zaitugongda.com:5000/

四、启动容器

docker run -itd -p 5000:5000 --restart=always --name registry \
-v /data/docker-registry/certs:/certs \
-v /data/docker-registry/auth:/auth \
-v /data/docker-registry/registry:/var/lib/registry \
-e "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/harbor.pem" \
-e "REGISTRY_HTTP_TLS_KEY=/certs/harbor.key" \
-e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" registry:2

说明:
-v 指定挂载目录,宿主机:容器目录
-e 指定了公钥和私钥的位置,以及密码文件位置

五、测试
1、在本地机器上登录仓库:

2、docker push (上传镜像)
这里给出一个shell文件, 我用这个文件打包image,再打一个tag后push到registry.

#!/bin/bash
image_name_version=$1
docker build -t ${image_name_version} .
docker tag ${image_name_version} harbor.zaitugongda.com:5000/stefan/${image_name_version}
docker push harbor.zaitugongda.com:5000/stefan/${image_name_version}
if [ $? -eq 0 ]
then
    echo "push ok"
else
    echo "push faild"

执行命令:

bash build.sh service_image:v1.0

3、docker pull(下载镜像)

docker pull  harbor.zaitugongda.com:5000/stefan/service_image:v1.0

本文完结,相关标签: docker

 版权所有:Anglei
 文章标题:搭建带https及账号密码访问的docker 私有镜像仓库(registry)
 除非注明,本站文章如未特殊说明均为 MAXADA社区知识库 原创,且版权所有,请勿用于任何商业用途。

推荐阅读:

看完后感想如何?

路过(0)

雷人(0)

握手(0)

鲜花(0)

鸡蛋(0)
分享到: