私有仓库程序
- 在centos7下,可以先安装“私有仓库程序”,
docker-registry
- 安装命令是
yum -y install docker-registry
- 安装后可以使用命令查看安装所产生的文件目录:
rpm -ql {包名}
- 在这里,命令是
rpm -ql docker-distribution
,运行后,显示:
[root@688eb2df7f86 /]# rpm -ql docker-distribution
/etc/docker-distribution/registry/config.yml
/usr/bin/registry
/usr/lib/systemd/system/docker-distribution.service
/usr/share/doc/docker-distribution-2.6.2
/usr/share/doc/docker-distribution-2.6.2/AUTHORS
/usr/share/doc/docker-distribution-2.6.2/CONTRIBUTING.md
/usr/share/doc/docker-distribution-2.6.2/LICENSE
/usr/share/doc/docker-distribution-2.6.2/MAINTAINERS
/usr/share/doc/docker-distribution-2.6.2/README.md
/var/lib/registry
- 其中,
/var/lib/registry
代表私有仓库存放镜像的路径 - 安装好后,如果是非镜像环境,可以启动服务:
systemctl start docker-distribution
- 如果是镜像环境:
/usr/bin/registry serve /etc/docker-distribution/registry/config.yml v
,这种弄启动方式是非后台运行模式 - 接着,可以另起一个shell窗口,查看端口监听情况
netstat -ntl
- 因为需要将镜像push到运行
docker-distribution
服务(对应端口是5000)所在的服务器上,所以需要知道它的ip:cat /etc/hosts
,我实验时的地址是172.17.0.2
, - 给镜像打tag:
docker tag testnginx:v0.1.10.2 172.17.0.2:5000/testnginx:v0.1.10.2
- push镜像:
docker push 172.17.0.2:5000/testnginx:v0.1.10.2
- 此时,会提示:
The push refers to a repository [172.17.0.2:5000/testnginx]
Get https://172.17.0.2:5000/v1/_ping: http: server gave HTTP response to HTTPS client
- 原因是提供私有仓库服务的程序是以http协议工作的,而你本地的客户端是https协议的
- 解决办法是,在本地将私有仓库服务的地址配置为非加密(非安全)
- 配置项名是
insecure-registries
,配置文件位于:/etc/docker/daemon.json
- 添加内容
"insecure-registries":["172.17.0.2:5000"]
,每个环境的情况不一样,请按实际的环境进行配置! - 配置好后,重新启动docker:
service docker restart
- 此时,可以再次push刚刚的镜像,
docker push 172.17.0.2:5000/testnginx:v0.1.10.2
- push成功!
网友评论