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

[经验分享] Docker学习之仓库

[复制链接]

尚未签到

发表于 2019-2-21 12:02:47 | 显示全部楼层 |阅读模式
  仓库Repository 是集中存放镜像的地方。
  Docker官方目前维护公共仓库叫 docker hub,可以在 https://cloud.docker.com 免费注册账号;
  Docker Hub
  登录
  执行命令 docker login 交互式输入用户名密码登录docker hub
  退出登录 docker logout
  拉取镜像pull
  docker search  查找官方仓库的镜像
  docker pull 下载镜像到本地
  docker search  --filter=stars=N指定仅显示STARS为N以上的镜像
  例如:# docker search centos --filter=stars=100显示centos收藏数量大于100的镜像列表

  镜像分类:
  1、基础镜像或根镜像 类似centos;由docker公司官方提供;一般使用单个名词作为名字;
  2、docker用户创建并维护的,username/image
  推送镜像push
  docker push 推送自己的镜像到Docker hub上
  例如# docker push username/ubuntu:17.10
  自动创建 Automated Builds
  自动创建(Automated Builds)功能对于需要经常升级镜像内程序来说,十分方便。
  有时候,用户创建了镜像,安装了某个软件,如果软件发布新版本则需要手动更新镜像。
  私有仓库
  docker-registry 官方提供的工具,可以构建私有的镜像仓库。
  安装运行docker-registry
  容器运行,本地没有registry镜像会自动下载。
  # docker run -d -p 5000:5000 --restart=always --name registry registry
  使用官方registry镜像启动私有仓库。默认情况下,仓库会被创建再容器 /var/lib/registry 目录下。可以通过-v 参数讲镜像文件存放本地的指定路径。例如 /opt/registry 没有目录的话需要创建;
  # docker run -d -p 5000:5000 -v /opt/registry/:/var/lib/registry registry
  76d011a935ef352efb6e6722c9b403540112bd5a7c6dea417fdbcfd6e19d3d9c
  在私有仓库上传、搜索、下载镜像
  docker tag 标记一个镜像,并推送到仓库。例如私有仓库地址127.0.0.1:5000
  格式为 docker tag IMAGE[:TAG] [REGISTRY_HOST[:REGISTRY_PORT]/]REPOSITORY[:TAG]
  

  使用 docker tag 将 ubuntu:latest 这个镜像标记为 127.0.0.1:5000/ubuntu:latest。
  # docker tag ubuntu:latest 127.0.0.1:5000/ubuntu:latest
  # docker image ls
  REPOSITORY              TAG           IMAGE ID            CREATED             SIZE
  127.0.0.1:5000/ubuntu   latest    452a96d81c30        2 weeks ago         79.6MB
  ubuntu                  latest              452a96d81c30        2 weeks ago         79.6MB
  registry                  latest             d1fd7d86a825        4 months ago        33.3MB
  docker push 上传标记的镜像(只有上传之后才会在本地保存)
  # docker push 127.0.0.1:5000/ubuntu:latest
  The push refers to repository [127.0.0.1:5000/ubuntu]
  059ad60bcacf: Pushed
  8db5f072feec: Pushed
  67885e448177: Pushed
  ec75999a0cb1: Pushed
  65bdd50ee76a: Pushed
  latest: digest: sha256:90f24abe180424046a5d53f6fc6f9fdb8f79b835cb2fd7d1a782e4c30dfb5dcc size: 1357
  用curl 查看仓库中的镜像
  # curl 127.0.0.1:5000/v2/_catalog
  {"repositories":["ubuntu"]}
  表明镜像已经被成功上传。
  删除已有镜像,再从私有仓库下载镜像
  # docker image rm 127.0.0.1:5000/ubuntu:latest
  # docker pull 127.0.0.1:5000/ubuntu:latest
  latest: Pulling from ubuntu
  Digest: sha256:90f24abe180424046a5d53f6fc6f9fdb8f79b835cb2fd7d1a782e4c30dfb5dcc
  Status: Downloaded newer image for 127.0.0.1:5000/ubuntu:latest
  # docker image ls
  REPOSITORY              TAG           IMAGE ID            CREATED             SIZE
  127.0.0.1:5000/ubuntu   latest    452a96d81c30        2 weeks ago         79.6MB
  注意事项
  如果你不想使用 127.0.0.1:5000 作为仓库地址,比如想让本网段的其他主机也能把镜像推送到私有仓库。你就得把例如 192.168.20.11:5000 这样的内网地址作为私有仓库地址,这时你会发现无法成功推送镜像。
  因为 Docker 默认不允许非 HTTPS 方式推送镜像。
  通过 Docker 的配置选项来取消这个限制.
  修改如下,如果没有daemon.json文件需要新建
  # cat /etc/docker/daemon.json
  {
  "registry-mirror": [ "https://registry.docker-cn.com" ],
  "insecure-registries": [ "192.168.20.11:5000" ]
  }
  重启docker生效  systemctl restart docker.service
  

  本地建立私有仓库,内网其他机器通过私有仓库下载镜像
  私有仓库ip 192.168.20.11 内网测试机器192.168.20.10
  步骤如下:
  2台机器都需要安装docker,并新建daemon.json文件,内容保持一致;
  私有仓库机器:
  # docker tag nginx:latest 192.168.20.11:5000/nginx:latest
  # docker push 192.168.20.11:5000/nginx:latest

  

  内网测试机器下载:
  # docker pull 192.168.20.11:5000/nginx:latest

  

  内网机器,测试push镜像到私有仓库机器
  # docker tag ubuntu:latest 192.168.20.11:5000/ubuntu:latest
  # docker push 192.168.20.11:5000/ubuntu:latest

  私有仓库机器pull 内网机器push的镜像
  # docker pull 192.168.20.11:5000/ubuntu:latest
  # docker image ls
  REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
  192.168.20.11:5000/ubuntu   latest              452a96d81c30        2 weeks ago         79.6MB
  测试OK;




运维网声明 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-675331-1-1.html 上篇帖子: docker私有仓库增加webUI访问 下篇帖子: Docker 1.7.1版本pull私有镜像仓库报错
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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