, docker仓库进行镜像的发布和管理,仓库一般分为公有仓库和私有仓库,例如Docker Hub,但是很多公司为了提高访问效率和安全性的考量,一般会搭建自己的私有仓库。今天我们来教大家怎么搭建自己的私有仓库。这就是Docker公司为我们提供的公共仓库。在工作中,我们不可能把
企业项目push到公有仓库进行管理。所以为了更好的管理镜像,Docker不仅提供了一个中央仓库,同时也允许我们搭建本地私有仓库。这里介绍registry、harbor两种私有仓库搭建。下面就由 新网小编和大家讲一讲docker搭建私有仓库。
一、注册登录
在命令行执行docker login输入用户名及密码来完成在命令行界面登记Docker Hub。你可以通过docker logout退出登录。
二、方法/步骤
1、使用命令docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry:2来创建仓库容器,搭建完成仓库服务。由于本地没有registry镜像,首先会从仓库中心拉取registry镜像,然后创建容器,在本地启动了一个5000端口的私有仓库服务。
2、docker images | grep registry命令可以查询到仓库的镜像,docker ps | grep registry看到仓库服务运行正常
3、我们搭建仓库的地址是10.199.137.114,我们准备另外一台机器10.199.137.115,将115上进行测试上传和下载镜像,验证我们搭建的仓库是否能正常使用,将我们的容器tag标记为10.199.137.114:5000/test
4、使用docker push命令上传我们标记的容器
[root@hz-ds-learn-199-137-115 ~]# docker push 10.199.137.114:5000/test
The push refers to a repository [10.199.137.114:5000/test]
Get https://10.199.137.114:5000/v1/_ping: http: server gave HTTP response to HTTPS client
当前docker版本对安全性要求较高,要求仓库支持
ssl /TLS证书,所以报错
5、在docker的配置文件/etc/docker/daemon.json中加入如下参数
{"insecure-registries":["10.199.137.114:5000"]},然后重启容器服务生效
systemctl restart docker 重启服务
6、使用docker push 10.199.137.114:5000/test命令再次上传,已经不再报错
使用curl http://10.199.137.114:5000/v2/search
7、从私有仓库下载镜像,测试正常(http: server gave HTTP response to HTTPS client客户端需要支持http)
docker pull 10.199.137.114:5000/test
三、harbor 的搭建
docker 官方提供的私有仓库 registry,用起来虽然简单 ,但在管理的功能上存在不足。 Harbor是一个用于存储和分发Docker镜像的企业级Registry
服务器,harbor使用的是官方的docker registry(v2命名是distribution)服务去完成。harbor在docker distribution的基础上增加了一些安全、访问控制、管理的功能以满足企业对于镜像仓库的需求。
如果不想使用127.0.0.1:5000作为仓库地址,比如想让本网段的其他 主机也能把镜像推送到私有仓库。你就得把例如192.168.1.1:5000这样的内网地址作为私有仓库地址,这时你会发现无法成功推送镜像。小伙伴们要想获得更多docker搭建私有仓库的内容,请关注新网!