目录
docker仓库的作用为:为docker创建容器提供镜像支持。分为公共仓库(docker hub ;阿里容器镜像服务)和用户自己构建的私有仓库。这里主要强调的是私有仓库,常见的docker仓库有docker-registry,harbor等
docker hub
dockr hub是docker公司提供的线上进项寄存服务,docker默认的镜像拉去的地址。除了这些以外dockerhub 还提供自动构建,私有仓库等功能。
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