docker基础之docker镜像私有registry

目录

docker hub

docker-registry


docker仓库的作用为:为docker创建容器提供镜像支持。分为公共仓库(docker hub ;阿里容器镜像服务)和用户自己构建的私有仓库。这里主要强调的是私有仓库,常见的docker仓库有docker-registry,harbor等

docker hub

dockr hub是docker公司提供的线上进项寄存服务,docker默认的镜像拉去的地址。除了这些以外dockerhub 还提供自动构建,私有仓库等功能。

官网:https://hub.docker.com/

docker-registry

docker-regisry为官方提供的简单的私有寄存服务的解决方案,进程的提供服务的端口号为5000

使用docker-registry私有仓库:

#本地虚拟机地址为:192.168.10.10
#查询提供的registry版本。
[root@localhost ~]# docker search registry
NAME                                 DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
registry                             The Docker Registry 2.0 implementation for s??  2812 
#目前官方提供的registry 2.0
####################################################
# 拉去registry
docker pull registry
[root@localhost ~]# docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
registry            latest              f32a97de94e1        10 months ago       25.8MB
#启动registry
[root@localhost ~]# docker run -d -p 5000:5000 --name local_registry registry:latest
dcb67794fa60529c7d8bb2c5bb0d9ba42c15892d1529cbdd5cbd1bb7123503fc
[root@localhost ~]# docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
dcb67794fa60        registry:latest     "/entrypoint.sh /etc??   12 seconds ago      Up 10 seconds       0.0.0.0:5000->5000/tcp   local_registry

######################
#本地目前有一个busybox的镜像文件,修改器仓库地址为192.168.10.10:5000,如果有时在公网上有域名的仓库可以使用域名代替。
#修改仓库信息,将其推送到私有仓库当当中
docker tag busybox:latest 192.168.10.10:5000/busybox:latest
docker push 192.168.10.10:5000/busybox:latest

仓库TLS导致不能访问的问题

原因,registry默认支持的是https协议,默认的情况之下是没有签发证书。解决方式

1,取消强制TSL认证

#在docker.service启动参数当中加入
--insecure-registry=192.168.10.10:500
#重启docker,再启动registry

2,自建证书

#创建一个存放证书和私钥的目录
mkdir registry_certs

#创建证书与私钥
openssl req -newkey rsa:4096 -nodes -sha256 -keyout registry_certs/domain.key -x509 -days 365 -out registry_certs/domain.crt

#docker客户端存放目录创建
mkdir -p /etc/docker/certs.d/192.168.10.10:5000 
#复制证书到这个目录下
 cp registry_certs/domain.crt /etc/docker/certs.d/192.168.10.10:5000/ca.crt
#数据卷的形式挂载registry_certs到容器内,启动容器指定证书与私钥的地址
docker run -d  -p 50000:5000 -v /registry_certs:/registry_certs -e  REGISTRY_HTTP_TLS_CERTIFICATE=registry_certs/domain.crt -e REGISTRY_HTTP_TLS_KEY=registry_certs/domain.key --restart always --name registry registry:latest

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值