经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Docker » 查看文章
【Docker】第四篇 Docker仓库管理 - 旅行者-Travel
来源:cnblogs  作者:旅行者-Travel  时间:2018/9/28 16:37:50  对本文有异议

一、仓库概述

  • 仓库(Repository):仓库是集中存放镜像文件的场所,仓库分为公共仓库和私有仓库。
  • 注册服务器(Registry)和仓库区别:注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)

二、仓库管理

  1. 1、注册账号
  2. https://hub.docker.com/ #在此页面注册账号,需要用户名,邮箱,密码(注:需要FQ才能注册,注册通过邮箱激活后可以通过网页登陆)
  3. 2、登陆docker hub
  4. root@localhost ~]# docker login
  5. #Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
  6. Username: *******
  7. Password:
  8. Login Succeeded
  9. 3、查找镜像 #可参考https://www.cnblogs.com/yangleitao/p/9683104.html
  10. [root@localhost ~]# docker search centos #可以加上版本号
  11. 4、下载镜像
  12. [root@localhost ~]# docker pull centos
  13. 5、上传镜像
  14. #我们可以把自己的镜像传到docker hub官网上,前提是已经注册了账号
  15. [root@localhost ~]# docker push image_name

三、搭建私有仓库

  1. 1、使用registry镜像创建私有仓库
  2. [root@localhost ~]# docker search registry
  3. NAME DESCRIPTION STARS OFFICIAL AUTOMATED
  4. registry The Docker Registry 2.0 implementation for s 2216 [OK]
  5. [root@localhost ~]# docker pull registry #直接下载镜像
  6. [root@localhost ~]# docker images #查看新下载的镜像
  7. 2
  8. [root@localhost ~]# mkdir -p /data/registry/ #创建一个本地目录,等一下挂载
  9. [root@localhost ~]#
  10. [root@localhost ~]# docker run -d -p 5000:5000 -v /data/registry/:/tmp/registry registry
  11. 599c0e1a298f5e7a19b9ba01ff314c3e3a26a22b3cba1e6800e21ffb54c8e9d5
  12. [root@localhost ~]# docker ps
  13. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  14. 599c0e1a298f registry "/entrypoint.sh /etc…" 9 seconds ago Up 7 seconds 0.0.0.0:5000->5000/tcp vibrant_engelbart
  15. 17c54a92a4e8 ubuntu:latest "/bin/bash" 6 days ago Up 6 days quizzical_bhabha
  16. [root@localhost ~]#

-d : 后台运行

-p : 宿主机跟容器映射端口 SERVER_PORT:CONTAINER_PORT

-v : 挂载宿主机目录到容器中作为数据卷, docker registry上传镜像默认存放到容器/var/lib/registry,将本地/data/registry目录挂载到容器中,避免删除容器是数据丢失

  1. 3、管理私有仓库
  2. [root@localhost ~]# docker run -d -p 5000:5000 registry
  3. 19003703c71307603cdb48fab242c96dc34c0e37f0dcfe2e568658abbea40557
  4. [root@localhost ~]# ps -aux|grep docker
  5. [root@localhost ~]# docker push 192.168.19.130:5000/test
  6. 报如下错:
  7. The push refers to a repository [192.168.19.130:5000/test]
  8. Get https://192.168.19.130:5000/v1/_ping: dial tcp 192.168.19.130:5000: getsockopt: connection refused
  9. 解决办法:
  10. a,执行
  11. echo '{ "insecure-registries":["192.168.19.130:5000"] }' >> /etc/docker/daemon.json #或者直接修改配置文件
  12. b, 重启docker clientdocker 服务
  13. [root@localhost ~]# systemctl restart docker #如果容器没有开启也会报错
  14. [root@localhost ~]# docker push 192.168.19.130:5000/test1 #再次上传成功
  15. The push refers to repository [192.168.19.130:5000/test1]
  16. 8d7ea83e3c62: Pushed
  17. 6a061ee02432: Pushed
  18. f73b2816c52a: Pushed
  19. 6267b420796f: Pushed
  20. a30b835850bf: Pushed
  21. latest: digest: sha256:a819482773d99bbbb570626b6101fa37cd93a678581ee564e89feae903c95f20 size: 1357
  22. [root@localhost ~]# curl -XGET http://192.168.19.130:5000/v2/_catalog
  23. {"repositories":["test","test1"]}
  24. [root@localhost ~]# curl -XGET http://192.168.19.130:5000/v2/test1/tags/list
  25. {"name":"test1","tags":["latest"]}
  26. [root@localhost ~]#

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号