设为首页 收藏本站
查看: 1365|回复: 0

[经验分享] Docker创建私有仓库

[复制链接]
发表于 2019-2-20 12:00:05 | 显示全部楼层 |阅读模式
  仓库(Repository)是集中存放镜像的地方。
一个容易混淆的概念是注册服务器(Registry)。实际上注册服务器是管理仓库的具体服务 器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像。从这方面来说,仓库可以 被认为是一个具体的项目或目录。例如对于仓库地址 docker.sina.com.cn/centos:centos63 来说,docker.sina.com.cn 是注册服务器地址,centos 是仓库名,centos63 是仓库的tag。
  Docker Hub 官方仓库
目前 Docker 官方维护了一个公共仓库 Docker Hub,其中已经包括了超过 15,000 的镜像。大部分需求,都可以通过在 Docker Hub 中直接下载镜像来实现。
注册&登录
可以通过命令行执行docker login  命令来输入用户名、密码和邮箱来完成注册和登录。注册成功后,本地用户目录的 .docker/config.json中将保存用户的认证信息。

  #docker login

  基本操作
用户无需登录即可通过docker search 命令来查找官方仓库中的镜像,并利用docker pull 命令来将它下载到本地。例如以 centos 为关键词进行搜索:

  #docker search centos

  可以看到返回了很多包含关键字的镜像,其中包括镜像名字、描述、星级(表示该镜像的受 欢迎程度)、是否官方创建、是否自动创建。官方的镜像说明是官方项目组创建和维护的, automated 资源允许用户验证镜像的来源和内容。
根据是否是官方提供,可将镜像资源分为两类。一种是类似 centos 这样的基础镜像,被称为基础或根镜像。这些基础镜像是由 Docker 公司创建、验证、支持、提供。这样的镜像往往使用单个单词作为名字。还有一种类型,比如喫anon/centos 镜像,它是由 Docker  的用户创建并维护的,往往带有用户名称前缀。可以通过前缀user_name/   来指定使用某个用户提供的镜像,比如喫anon用户。另外,在查找的时候通过 ‐s N 参数可以指定仅显示评价为 N 星以上的镜像。
创建自己的私有仓库
1、通过官方的registry容器来运行
2、本地安装
我们通过registry这个官方的容器来构建私有仓库
1、首先给仓库服务器设置IP地址信息,本案例为20.14.3.122/24
  预环境要求:安装docker-ce程序,并设置开机启动
2、查看docker hub上的registry容器镜像

  #docker search registry

  将registry镜像拉到本地docker pull registry

  #docker pull registry

  启动容器:


#docker run -d -p 5000:5000 --restart=always -v
/opt/registry:/var/lib/registry registry
  新registry的仓库目录是在/var/lib/registry
-v选项指定将/opt/registry/目录挂载给/var/lib/registry/

  #docker ps

  3、在防火墙里面放行TCP 5000端口


firewall-cmd --add-port=5000/tcp   立即生效
firewall-cmd --add-port=5000/tcp --permanent 永久生效
  4、验证
使用curl http://20.14.3.122:5000/v2/_catalog能看到json格式的返回值时,说明registry已经运行起来了。

  #curl http://20.14.3.122:5000/v2/_catalog

  5、dockers registry V2 版本客户端默认使用https协议去push镜像到仓库服务器,而现在我们的仓库服务器只配置了支持http,所以客户端会push镜像失败


#docker tag hello-world:latest 20.14.3.122:5000/hello-wold:latest
#docker push 20.14.3.122:5000/hello-world
  错误消息为:http: server gave HTTP response to HTTPS client
如要希望docker客户端支持http协议,需在启动docker时加入参数 --insecure- registry your_registry_ip:port
编辑/usr/lib/systemd/system/docker.service文件
增加--insecure-registry参数

  重新启动docker


[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker.service
  或者修改/etc/docker/daemon.json文件也可以,修改完后重启docker

然后再push镜像,发现成功


#docker image list
#docker push 20.14.3.122:5000/hello-world
#curl http://20.14.3.122:5000/v2/_catalog
  在其他电脑上也可以pull下来

  #docker pull 20.14.3.122:5000/hello-world




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-674876-1-1.html 上篇帖子: 『中级篇』docker之wordpress容器SSL(番外篇)(78) 下篇帖子: Python全栈开发之Docker
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表