docker_registry搭建私有仓库一些问题

1 不需要认证 不需要https最简单的 

不安全一般内网使用

docker run -id --name registry -p 5000:5000 -v /data/docker/registry:/var/lib/registry registry

/var/lib/registry 镜像仓库存储路径

docker默认使用https会报错,无法上传或者拉取镜像

需要添加 重启docker
vim /etc/docker/daemon.json
添加一行
{
 "insecure-registries" : ["10.47.32.122:5000""]
}

## 10.47.32.122为私有仓库内网地址

不需要登录直接上传  先打tag  ;docker tag nginx  10.47.32.122:5000/nginx ;格式必须为仓库地址加端口/镜像名称

docker push  10.47.32.122:5000/nginx  推送  

docker pull  10.47.32.122:5000/nginx 拉取

2 需要认证登录(docker  login) 不需要https

一般demo使用

生成密码 需要httpd-tools 包 

htpasswd -bnBC 12  admin admin123  > /usr/local/reg/passwd

admin 用户名

admin123 密码

docker run -id --name registry -p 80:5000 -v /data/docker/registry:/var/lib/registry   \

-v /usr/local/reg/:/auth  -e "REGISTRY_AUTH=htpasswd"  -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/passwd  registry

REGISTRY_AUTH  表示使用htpsswd 认证

REGISTRY_AUTH_HTPASSWD_PATH  秘钥文件路径

最后还是需要添加  /etc/docker/daemon.json 否则docker login 会报错

tips 

内网之间可以在/etc/hosts 添加IP 域名映射 通过域名登录推送镜像等操作

比如 在/etc/hosts 添加   10.47.32.122    lreg.io 

/etc/docker/daemon.json 配置为   "insecure-registries" : ["lreg.io""]

登录  docker login -u admin -p admin123  lreg.io  不登录无法推送拉取镜像

打tag   docker tag nginx  lreg.io/nginx

docker push   lreg.io/nginx  推送  

docker pull   lreg.io/nginx 拉取

容易踩坑的点 

经过测试在/etc/hosts通过公网映射自定义域名无效,公网IP映射的域名必须是真实存在的否则连接会报403

3 需要认证登录(docker  login) 需要https(证书)

最安全 可以开放在公网生产环境使用

如何签发证书可以查看我之前的文章

docker run -id --name registry -p 443:5000 -v /data/docker/registry:/var/lib/registry   \

-v /usr/local/reg/:/auth  -e "REGISTRY_AUTH=htpasswd"  -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/passwd \

-e REGISTRY_HTTP_TLS_CERTIFICATE=/auth/reg.crt -e REGISTRY_HTTP_TLS_KEY=/auth/reg.key  registry

REGISTRY_AUTH  表示使用htpsswd 认证

REGISTRY_AUTH_HTPASSWD_PATH  秘钥文件路径

REGISTRY_HTTP_TLS_CERTIFICATE  证书路径

REGISTRY_HTTP_TLS_KEY  证书私钥路径

如果是自签证书,docker会报错

解决办法还是在 /etc/docker/daemon.json 添加 insecure-registries 可以解决,我看网上资料说在/etc/docker/certs.d/添加ca证书进去可以解决经过本人测试无效   

除非是正儿八经申请的证书不需要在/etc/docker/daemon.json添加;比如阿里云的镜像仓库就可以直接登录

第二个错误如果证书里面不包含你的镜像仓库IP  docker会报,你的IP不在证书信息当中已无法登录解决办法还是在 /etc/docker/daemon.json 添加 insecure-registries 可以解决

也可以在签发证书把IP添加进去,如何操作可以查看我之前的文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值