Docker私有仓库搭建
如果企业大规模应用Docker技术做IT基础实施的管理,不大可能都用三方的仓库,这样费代宽费时间还不安全,势必会涉及到搭建私有Docker仓库。
搭建私有Docker仓库比较简单,下面对搭建过程做个记录。
环境准备
- Docker仓库服务器:10.10.10.25
- Docker客户端:10.10.10.30
先准备两台服务器,用的是openSUSE
的系统,都要安装docker服务zypper in docker
,并启动服务systemctl start docker.service
,可以把设置成开机自动启动systemctl enable docker.service
。
可以给Docker换一个目录,先停止docker,改配置文件,拷贝文件到新目录,再启动docker服务。配置项如下:
|
|
服务端配置
所谓私有仓库服务,其实也是用docker部署的,镜像名称是registry
,在服务器 10.10.10.25 上拉取镜像registry
|
|
查看镜像,$> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry latest 2d4f4b5309b1 5 months ago 26.2MB
然后就是启动这个镜像的一个容器,启动之前先确定宿主机的磁盘空间,将来可能会有大量镜像上传,需要具备一定的磁盘空间,将宿主机的大磁盘空间以挂载卷的方式挂载到容器中
|
|
容器启动成功之后,私有仓库就配置部署好了。
客户端配置
客户端 10.10.10.30 服务器,先拉取或创建自己的应用镜像,然后给要上传到私有仓库的镜像打标签:
|
|
成功之后会发现本地镜像库中多了下面这条记录:
REPOSITORY TAG IMAGE ID CREATED SIZE
10.10.10.25:5000/bmcopensuse15.2-v1 latest b06b60600e2a 2 days ago 270MB
接下来就是把打好tag的镜像上传到私有镜像仓库:
|
|
注意:测试发现同样的镜像(版本号也一致)可以重复push到仓库,将把以前的镜像覆盖。
不出意外,你会看到一个错误提示:
Get https://10.10.10.25:5000/v2/: http: server gave HTTP response to HTTPS client
意思是私有仓库暴露的http
端口不支持https
协议,而客户端默认使用https
上传镜像,怎么办?
https
的问题
第一种方法:在客户端配置使用指定服务器采用不安全的http
协议传输
|
|
第二种方法:在服务器端配置SSL
证书
这种方法以后再补充…
验证是否可用
上面证书的问题解决之后,应该就可以成功将镜像推送到私有仓库了,现在查看一下推送结果:
|
|
到这里你就可以在内网任何地方使用私有仓库拉取和推送自己的镜像了。
删除镜像
私有镜像仓库中镜像如果不需要了,如何删除呢?很奇怪这居然是个比较麻烦的事情,可以参考下面的方法:
官方:https://github.com/burnettk/delete-docker-registry-image
民间:https://segmentfault.com/a/1190000018166325
用官方的方法需要先安装一个命令,赋予可执行权限:
|
|
(完)
- 原文作者: 闪电侠
- 原文链接:https://chende.ren/2020/12/05003656-create-registry.html
- 版权声明:本作品采用 开放的「署名 4.0 国际 (CC BY 4.0)」创作共享协议 进行许可