搭建带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 指定了公钥和私钥的位置,以及密码文件位置
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
推荐阅读:
![]() 路过(0) |
![]() 雷人(0) |
![]() 握手(0) |
![]() 鲜花(0) |
![]() 鸡蛋(0) |