zoukankan      html  css  js  c++  java
  • docker自建仓库Registry

           因为生产情况下官方容器还是比较慢的,所以会用到自建docker仓库。docker官方提供完整部署仓库的容器,你只需要提供域名证书,把文件系统挂载到容器,一个用户密码文件就可以使用基本的仓库功能了。

    启动一个registry容器

    默认情况下,会将仓库存放于容器内的/tmp/registry目录下,这样如果容器被删除,则存放于容器中的镜像也会丢失,所以我们一般情况下会指定本地一个目录挂载到容器内的/tmp/registry下,如下

    [root@salt-node1 distribution-master]# docker run -d -p 5000:5000 -v /opt/registry:/tmp/registry registry

    9ed2f91a7056f1109d2146122930b12f7d077a5404f621647d12eeeb29725260

    提交一个本地的镜像到本地仓库,这个需要你首先 tag 一个镜像,然后才能 push 上去

    [root@salt-node1 ~]# docker tag redis localhost:5000/redis

    [root@salt-node1 ~]# docker push localhost:5000/redis

    但是因为你本地仓库如果不进行证书认证只能127.0.0.1访问,所以我们要创建密钥。否则在另外一台机器pull时会提示:

    root@ubuntu:/etc/docker# docker pull 192.168.161.130:5000/redis
    Using default tag: latest
    Error response from daemon: Get https://192.168.161.130:5000/v1/_ping: http: server gave HTTP response to HTTPS client

    一种处理方式是修改客户端机器

    在”/etc/docker/“目录下,创建”daemon.json“文件。在文件中写入:

    { "insecure-registries":["192.168.1.100:5000"] }

    保存退出后,重启docker。问题解决。

    另一种方式是在服务器端添加证书

    配置一个域名

    给域名准备一个加密证书,启动容器

    docker run -d -p 5000:5000 --restart=always --name registry

      -v /etc/docker/certs:/certs

      -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt

      -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key

      registry:2

     ------------------------------------

    还有一个更简单的建立本地仓库的办法:

    yum install docker docker-distribution 

    #systemctl enable docker
    #systemctl start docker
    #systemctl enable docker-registry
    #systemctl start docker-registry

    [root@01 /]# vim /etc/sysconfig/docker
    • 把下面这一行添加进去。
    OPTIONS='--insecure-registry 192.168.161.130:5000'

    systemctl restart docker docker-registry

    docker tag ubuntu 192.168.161.130:5000/ubuntu
    docker push 192.168.161.130:5000/ubuntu

     
     
  • 相关阅读:
    Hexo+Github 搭建一个自己的博客
    vue中sessionStorage存储的用法和问题
    vue 页面刷新
    vue渲染完页面后div滚动条定位在底部
    vue 定义全局函数
    vue filter过滤器用法
    vue中bus.$on事件被多次绑定
    vue中引入jQuery的方法
    vue2.0传值方式:父传子、子传父、非父子组件、路由跳转传参
    vue打包后显示为空白页的解决办法
  • 原文地址:https://www.cnblogs.com/zjd2626/p/7308883.html
Copyright © 2011-2022 走看看