zoukankan      html  css  js  c++  java
  • 菜鸟系列docker——docker仓库(2)

    1.仓库Registry

    我们一般的镜像都是保存在仓库中,这样在其他服务器上可以直接从仓库获取镜像。仓库一般分为公共registry和私有registry。公共registry一般是Docker公司负责维护的Docker Hub。我们可以将自己的镜像保存在Docker Hub上。

    1.1 公共registry

    这里主要介绍Docker Hub的操作,当然也存在一些其他公共registry。接下来将介绍Docker Hub的一些操作。

    docker login -u eggsyz
    
    • 先下载一个公共镜像nginx,再上传到自己仓库
    [centos@jiliguo ~]$ docker pull nginx
    Using default tag: latest
    latest: Pulling from library/nginx
    27833a3ba0a5: Already exists 
    ea005e36e544: Pull complete 
    d172c7f0578d: Pull complete 
    Digest: sha256:e71b1bf4281f25533cf15e6e5f9be4dac74d2328152edf7ecde23abc54e16c1c
    Status: Downloaded newer image for nginx:latest
    
    • 通过docker tag重命名,因为Docker Hub为了区别不同用户相同镜像,需用用户名进行命名镜像
    [centos@jiliguo ~]$ docker images eggsyz/nginx
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    eggsyz/nginx        latest              27a188018e18        3 days ago          109MB
    
    • 上传到Docker Hub
    docker push eggsyz/nginx
    The push refers to repository [docker.io/eggsyz/nginx]
    fc4c9f8e7dac: Layer already exists 
    912ed487215b: Layer already exists 
    5dacd731af1b: Layer already exists 
    latest: digest: sha256:c10f4146f30fda9f40946bc114afeb1f4e867877c49283207a08ddbcf1778790 size: 948
    

    在Docker Hub查看,看到我们上传到镜像

    image
    后面我们就可以通过docker pull eggsyz/nginx来下载这个镜像了,各位看官可以试试能不能下载。

    1.2私有registry

    虽然公有仓库很方便,也很简单,但是存在以下几个问题。

    • 需要网络
    • 上传到镜像别人可以访问
    • 平时工作的镜像是不能公开的。
      因此,私有仓库就诞生了。其实搭建私有registry的方式也非常简单,这也是一个容器,下载镜像,运行容器即可。
      1.下载registry镜像
    [centos@jiliguo ~]$ docker pull registry
    Using default tag: latest
    latest: Pulling from library/registry
    c87736221ed0: Pull complete 
    1cc8e0bb44df: Pull complete 
    54d33bcb37f5: Pull complete 
    e8afc091c171: Pull complete 
    b4541f6d3db6: Pull complete 
    Digest: sha256:3b00e5438ebd8835bcfa7bf5246445a6b57b9a50473e89c02ecc8e575be3ebb5
    Status: Downloaded newer image for registry:latest
    
    

    2.运行容器

    [centos@jiliguo ~]$ docker run -d -p 6666:5000 -v /home/centos/registry/:/var/lib/registry registry
    f59914248a09f3fe4b7afccef5c3585afc6406c428b1030840188124ae8fb728
    [centos@jiliguo ~]$ docker ps
    CONTAINER ID        IMAGE                                     COMMAND                  CREATED             STATUS              PORTS                                                                       NAMES
    f59914248a09        registry                                  "/entrypoint.sh /etc…"   7 seconds ago       Up 5 seconds        0.0.0.0:6666->5000/tcp    
    

    3.镜像命名

    docker tag eggsyz/nginx 192.168.9.110:6666/eggsyz/nginx
    

    4.上传镜像

    [centos@jiliguo ~]$ docker run -d -p 6666:5000 -v /home/centos/registry/:/var/lib/registry registry
    c56e13b18ea1501e63b976387269228dcc87348374a8c6ff3a5da48f97223bde
    [centos@jiliguo ~]$ docker push 192.168.9.110:6666/eggsyz/nginx
    The push refers to repository [192.168.9.110:6666/eggsyz/nginx]
    fc4c9f8e7dac: Pushed 
    912ed487215b: Pushed 
    5dacd731af1b: Pushed 
    latest: digest: sha256:c10f4146f30fda9f40946bc114afeb1f4e867877c49283207a08ddbcf1778790 size: 948
    

    这一步可能会爆https错误http: server gave HTTP response to HTTPS client
    解决方案之一:
    在/etc/docker/目录下,创建daemon.json文件。在文件中写入:
    { "insecure-registries":["192.168.9.110:6666"] }
    5.下载镜像

    docker pull 192.168.9.110:6666/eggsyz/nginx
    

    私有仓库还可以进行认证等操作。这部分详情请查看https://docs.docker.com/registry/configuration/。好了,仓库基本操作介绍完毕,后续介绍镜像和容器操作。

    如果你觉得写的不错,请移步www.itkezhan.top或者关注公众号IT程序员客栈
  • 相关阅读:
    链接的具体内容
    多线程下载图片
    Commo*IO组件的简单应用
    文件分割
    mybatis动态sql
    ajax请求与json数据处理
    ModelAndView 配置与使用
    div塌陷,以及页面常用属性
    EasyUI 时间插件使用配置
    Editor富文本编辑器配置【不含图片上传】
  • 原文地址:https://www.cnblogs.com/i-dandan/p/10740927.html
Copyright © 2011-2022 走看看