Docker<4>---公有仓库及私有仓库

Docker仓库
1、什么是仓库
Docker仓库是用来存放镜像的位置,Docker提供一个注册服务器(Register)来保存多个仓库,每个仓库又可以包含多个具备不同tag的镜像。
Docker运行中使用的默认仓库是Docker Hub公共仓库,可以i免费使用,也购买私有仓库。

在官方网站注册创建公共仓库并登陆网页创建
上传镜像

docker login									#登陆帐号
docker tag nginx:small 帐号/nginx:small		#上传镜像
docker push +镜像名称							#上传
docker search +名称
docker pull +名称

2、Registry工作原理
一次docker pull或者docker push背后步骤:
index服务主要提供镜像索引及用户认证功能。当下载一个镜像时,首先会在index服务上做认证,然后查找镜像所在的registry的地址并放回给docker客户端,docker客户端在从registry下载镜像,在下载过程中registry会去index校验客户端token的合法性。
不同镜像可以保存不同的registry服务上,其索引信息都放在index服务上。
(1)index:
负责维护有关用户账户、镜像的校验以及公布命名空间的信息。
Web UI
元数据存储
认证服务
符号化
(2)registry:
镜像和图表的仓库,他不具有本地数据库以及不提供用户认证,通过Token的方式验证。
(3)registry client:
docker充当registry客户端来维护推送和拉去,以及客户端授权。

3、搭建私有仓库
由于安全原因企业可能不允许镜像放外网,需要创建私有仓库:
官方文件
https://docs.docker.com/registry/deploying/

docker search registry
docker pull registry
docker history registry:latest
docker volume ls		#查看数据卷
docker volume prune		#删除
docker run -d --name registry -p 5000:5000 registry	#端口映射
netstat -antlp			#端口配置成功
docker tag yakexi007/game2048:latest localhost:5000/game2048	#从本地上传私有镜像
docker push localhost:5000/game2048	#上传
docker pull localhost:5000/game2048	#拉取

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、开启私有库远程使用
在另一台主机上安装docker并开启

[root@server2 /]# docker pull 172.25.1.1:5000/game2048
Using default tag: latest
Error response from daemon: Get https://172.25.1.1:5000/v2/: http: server gave HTTP response to HTTPS client
#加密需要认证
如果要访问非安全证书:
server2:
cd /etc/docker/
vim daemon.json
{
  "insecure-registries" : ["reg.westos.org:5000"]
}
vim /etc/hosts
172.25.1.1 server1 reg.westos.org
systemctl daemon-reload
systemctl restart docker

在这里插入图片描述

docker pull reg.westos.org:5000/game2048	#拉取成功

在这里插入图片描述
(1)在仓库主机加密认证
官方文件:
https://docs.docker.com/registry/insecure/
生成证书:

mkdir -p certs
[root@server1 ~]# openssl req \
> -newkey rsa:4096 -nodes -sha256 -keyout certs/westos.org.key \
> -x509 -days 365 -out certs/westos.org.crt		#认证
[root@server1 ~]# ls certs/
domain.crt  domain.key  westos.org.key

在这里插入图片描述

(2)运行上传
官方文件:
https://docs.docker.com/registry/deploying/#get-a-certificate

docker run -d \						#运行证书
  --name registry \
  -v "$(pwd)"/certs:/certs \
  -v /opt/registry:/var/lib/registry \
  -e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/westos.org.crt \
  -e REGISTRY_HTTP_TLS_KEY=/certs/westos.org.key \
  -p 443:443 \
  registry

docker tag ubuntu:latest reg.westos.org/ubuntu		#上传reg.westos.org/ubuntu

在这里插入图片描述
在这里插入图片描述

[root@server1 ~]# docker push reg.westos.org/ubuntu	#报错
The push refers to repository [reg.westos.org/ubuntu]
Get https://reg.westos.org/v2/: x509: certificate signed by unknown authority

mkdir /etc/docker/certs.d/reg.westos.org
cp ~/certs/westos.org.crt .
mv westos.org.crt ca.crt				#改名		

在这里插入图片描述
远程链接下载:

scp -r certs.d/ root@172.25.1.2:/etc/docker/
docker pull reg.westos.org/ubuntu			#成功拉取

在这里插入图片描述


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值