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

[经验分享] centos7系统下搭建docker本地镜像仓库

[复制链接]

尚未签到

发表于 2017-12-6 14:06:32 | 显示全部楼层 |阅读模式
  ## 准备工作
  用到的工具, Xshell5, Xftp5, docker.io/registry:latest镜像
  关于docker的安装和设置加速, 请参考这篇博文centos7系统下 docker 环境搭建
  参考之前的博文, 设置完加速后, 执行docker pull registry命令, 下载docker.io/registry官方镜像
  ## 启动registry镜像
  启动docker.io/registry容器, 如果tag是latest, 可以忽略不写



docker run -d -p 80:5000 --restart=always --name local_registry docker.io/registry:latest
  -d 后台运行
-p 端口映射, 宿主机80端口映射给容器的5000端口
--restart=always 容器意外关闭后, 自动重启 (如果重启docker服务, 带这个参数的, 能自动启动为Up状态, 不带这个的,不会自动启动)
--name 给容器起个名字, 可以根据这个名字去停止/启动/删除容器
  ## 配置端口开放



```
[iyunv@localhost docker]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
[iyunv@localhost docker]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
sourceports:
icmp-blocks:
rich rules:
[iyunv@localhost docker]# firewall-cmd --reload
success
[iyunv@localhost docker]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports: 80/tcp
protocols:
masquerade: no
forward-ports:
sourceports:
icmp-blocks:
rich rules:
```
  配置端口开放之后, 需要执行firewall-cmd --reload才能生效
  ## 重命名镜像



[iyunv@localhost docker]# docker images
REPOSITORY                                           TAG                 IMAGE ID            CREATED             SIZE
repos_local/zookeeper                                0.0.1               bdb481b4f17a        2 days ago          541.5 MB
  repos_local/zookeeper 是上篇博文介绍的使用Dockerfile文件创建的镜像, 重命名



docker tag repos_local/zookeeper:0.0.1 192.168.199.131/repos_local/zookeeper:latest
  docker tag 原镜像名:tag 新镜像名:tag
  docker images 查看镜像名称是否更改正确



[iyunv@localhost docker]# docker images
REPOSITORY                                           TAG                 IMAGE ID            CREATED             SIZE
192.168.199.131/repos_local/zookeeper                latest              bdb481b4f17a        2 days ago          541.5 MB
  ## 推送镜像
  docker push 192.168.199.131/repos_local/zookeeper:latest
如果提示以下错误, 说明没有把搭建的registry加入可信任的列表里面, 如果有https域名或者能创建.crt证书, 那么可以忽略以下步骤



Error response from daemon: invalid registry endpoint https://192.168.199.131/v0/: unable to ping registry endpoint https://192.168.199.131/v0/
v2 ping attempt failed with error: Get https://192.168.199.131/v2/: dial tcp 192.168.199.131:443: no route to host
v1 ping attempt failed with error: Get https://192.168.199.131/v1/_ping: dial tcp 192.168.199.131:443: no route to host. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry 192.168.199.131` to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/192.168.199.131/ca.crt
  解决方法:
  只针对centos7下 Docker version 1.12.5, build 047e51b/1.12.5版本有效, 其它版本没做过测试
  vi /etc/sysconfig/docker



注意--insecure-registry 192.168.199.131插入的位置
# Modify these options if you want to change the way the docker daemon runs
OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false --insecure-registry 192.168.199.131'
if [ -z "${DOCKER_CERT_PATH}" ]; then
DOCKER_CERT_PATH=/etc/docker
fi
  重启docker服务
systemctl restart docker.service
  重新执行docker push 192.168.199.131/repos_local/zookeeper:latest , 这次应该就能成功了
  ## 查看镜像仓库



[iyunv@localhost docker]# curl 192.168.199.131/v2/_catalog
{"repositories":["repos_local/zookeeper"]}
[iyunv@localhost docker]# curl 192.168.199.131/v2/repos_local/zookeeper/tags/list
{"name":"repos_local/zookeeper","tags":["latest"]}
  至于镜像的删除, 目前还没找到一个好的解决方法, 如有建议请留言
如需帮助可向我发起QQ聊天发起QQ聊天
  友情赞助
  如果您喜欢此文,感觉对您工作有帮助,预期领导会给您涨工资,不妨小额赞助一下,让我有动力继续努力。
  赞助方式:打开支付宝App,使用“扫一扫”付款,付款码见下图,别忘了付款留言哦!
   DSC0000.png
或使用微信, 不用加好友就能付款
DSC0001.png

运维网声明 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-421337-1-1.html 上篇帖子: docker命令查询 下篇帖子: 一张表搞懂各种 Docker 监控方案
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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