Docker私有仓库registry的搭建及使用
2019-01-17 14:01
295 查看
Docker私有仓库registry的搭建及使用
前言
由于Docker Hub公共仓库很多时候使用这并不是很方便,大分部因为网络的问题可能拉取的时候会很慢或者拉取不到,所以搭建一个本地的私有仓库。
准备
由于此篇文章是在Kubernetes集群安装部署这篇文章的基础上补充docker私有仓库的搭建,所以安装机器配置过hosts的
[root@k8s-master ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.44.60 etcd 192.168.44.60 registry 192.168.44.60 k8s-master 192.168.44.61 k8s-slave01 192.168.44.62 k8s-slave02
搭建过程
1、拉取并启动registry容器
从Docker官方仓库里下载registry镜像
[root@k8s-master ~]# docker pull registry
通过该镜像启动容器
[root@k8s-master ~]# docker run -d --name=my_registry -p 5000:5000 -v /opt/data/registry:/tmp/registry --restart=always --privileged=true docker.io/registry 8eaed99a084999678795b9a6cedb8e57446f555dde6798756718f1b4decfee66
参数解释:
-v /opt/data/registry:/tmp/registry:默认情况下,会将仓库存放于容器内的/tmp/registry目录下,指定本地目录挂载到容器,不过也不一定是这个目录,具体还是进入镜像内确定一下最好,也有可能是/var/lib/registry或者其他目录,如果不是的话重新启动一下容器。 -p 5000:5000 :端口映射。即本地5000端口,映射到registry中的5000端口。 –restart=always:在容器退出时总是重启容器,主要应用在生产环境。 –privileged=true:在CentOS7中的安全模块selinux把权限禁掉了,参数给容器加特权,不加上传镜像会报类似权限错误。OSError: [Errno 13] Permission denied: '/tmp/registry/repositories/liibrary')或者(Received unexpected HTTP status: 500 Internal Server Error) –-name=my_registry:指定容器的名称,也可以-name my_registry。
查看容器
[root@k8s-master ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8eaed99a0849 docker.io/registry "/entrypoint.sh /e..." 50 seconds ago Up 49 seconds 0.0.0.0:5000->5000/tcp my_registry
由上可以看到,已经启动了一个容器,地址为:registry:5000也就是192.168.44.60:5000。
2、将本地镜像push到私有仓库中
首先看一下现在机器上的镜像
[root@k8s-master ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/registry latest 33fbbf4a24e5 12 days ago 24.2 MB docker.io/tomcat latest 1a51cb5e3006 2 weeks ago 462 MB docker.io/nginx latest 7042885a156a 2 weeks ago 109 MB docker.io/mysql latest 102816b1ee7d 2 weeks ago 486 MB docker.io/redis latest 5d2989ac9711 2 weeks ago 95 MB docker.io/centos latest 1e1148e4cc2c 5 weeks ago 202 MB
修改一下tomcat镜像的tag标识,然后查看镜像信息
[root@k8s-master ~]# docker tag tomcat registry:5000/tomcat [root@k8s-master ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/registry latest 33fbbf4a24e5 12 days ago 24.2 MB docker.io/tomcat latest 1a51cb5e3006 2 weeks ago 462 MB registry:5000/tomcat latest 1a51cb5e3006 2 weeks ago 462 MB docker.io/nginx latest 7042885a156a 2 weeks ago 109 MB docker.io/mysql latest 102816b1ee7d 2 weeks ago 486 MB docker.io/redis latest 5d2989ac9711 2 weeks ago 95 MB docker.io/centos latest 1e1148e4cc2c 5 weeks ago 202 MB
发现多了一个registry:5000/tomcat镜像,另外需要注意的是:修改了tag后的镜像若要删除,docker rmi后面不能用镜像ID了,需要用docker rmi registry:5000/tomcat。
把上面修改tag后的镜像上传到私有仓库
[root@k8s-master ~]# docker push registry:5000/tomcat The push refers to a repository [registry:5000/tomcat] 10acf9008214: Pushed f725cace5e8c: Pushed 70333c64c1a2: Pushed a8586e8d29fb: Pushed 2d63501da7e5: Pushed e6ae888dd260: Pushed 80917357f055: Pushed bfc5dbc4d7a7: Pushed b53b57a50746: Pushed d2518892581f: Pushed c581f4ede92d: Pushed latest: digest: sha256:af0dc8139f8353ff2f10f8fe9fdf54a9d844f4c337b35dd40b6c0336d919e3f6 size: 2626
验证是否将镜像上传到私有仓库
[root@k8s-master ~]# curl -XGET http://registry:5000/v2/_catalog {"repositories":["tomcat"]} [root@k8s-master ~]# curl -XGET http://registry:5000/v2/tomcat/tags/list {"name":"tomcat","tags":["latest"]}
查看映射的本地文件夹
[root@k8s-master ~]# ls /opt/data/registry/ docker
此时即便将docker images中列出来的 registry:5000/tomcat删掉,本地仓库中的registry:5000/tomcat也还是可以正常使用的。
docker rmi registry:5000/tomcat
如此,Kubernetes集群安装部署这篇文章中的master的配置才起到了作用(可以从本地仓库拉取所需镜像)。
这样,也就可以在同一局域网内的其他机器上,从该私有仓库中pull下来该镜像:
docker pull registry:5000/tomcat #如果没有配置hosts信息,可通过ip来拉取 docker pull 192.168.44.60:5000/tomcat
posted @ 2019-01-17 14:01 青衫仗剑 阅读(...) 评论(...) 编辑 收藏
相关文章推荐
- 使用Docker Registry搭建Docker私有仓库-极简
- docker私有仓库搭建 使用Portus管理docker registry 私有仓库
- 使用docker Registry快速搭建私有镜像仓库
- 使用官方 docker registry 搭建私有镜像仓库及部署 web ui
- Docker 搭建私有仓库(registry、harbor)
- 详解Docker私有仓库Registry的搭建验证
- 利用registry搭建局域网docker私有仓库
- 使用Docker registry镜像创建私有仓库
- docker搭建私有仓库以及使用
- Docker系列08—搭建使用私有docker registry
- Docker私有仓库Registry 搭建
- 使用Docker registry镜像创建私有仓库的方法
- docker 搭建私有仓库registry (多用户)
- 搭建和使用Docker私有仓库
- 使用 harbor 搭建 docker 私有镜像仓库
- docker基础:私有仓库repository搭建(1):registry
- Docker Hub 仓库使用,及搭建 Docker Registry
- Docker私有仓库Registry的搭建验证
- Docker私有仓库Registry的搭建验证
- Docker--------Harbor registry私有仓库搭建 [ Http ]