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

     
     
  • 相关阅读:
    72. Edit Distance
    电脑常识
    java try·····catch·····异常处理学习
    java链接sqlserver数据库
    HTTP Status 500
    初识NDA
    Sublime Text_v2.02包含中文包以及使用方法
    ol 与ul 的区别
    word-break: break-all word-break:keep-all word-wrap: break-word三者的区别
    用deamon打开ISO文件,提示命令行错误!!
  • 原文地址:https://www.cnblogs.com/zjd2626/p/7308883.html
Copyright © 2011-2022 走看看