zoukankan      html  css  js  c++  java
  • Docker学习五:如何搭建私有仓库

    一、基本概念

    仓库:是存储和分发镜像的地方,分为公共镜像仓库和私有镜像仓库

    注册服务器、仓库、镜像之间的关系

    注册服务器是存放仓库的实际服务器,而仓库则可以被理解为一个具体的项目或者目录;注册服务器可以包含很多个仓库,每个仓库又可以包含多个镜像。例如我的镜像地址为 docker.io/centos,docker.io 是注册服务器,centos 是仓库名

     二、创建镜像仓库

    公共镜像仓库

    1、官网https://hub.docker.com/注册账号后

     2、通过docker login命令镜像仓库

    docker login命令默认会登录Docker Hub镜像仓库,如果想登录其他第三方或者自建的镜像仓库,后面加上注册服务器即可

    3、通过docker tag命令重命名仓库

    docker tag busybox canghai123qwer/busybox,注意名称格式:账号/镜像名称,否则会出现“denied: requested access to the resource is denied”错误

    4、通过docker pull命令可拉取上面创建的镜像

    私有镜像仓库

    本地仓库

    1、启动本地仓库

    docker run -d -p 5000:5000 --name registry registry:2.7

     2、重命名镜像后推送到本地镜像仓库

     3、删除已有的localhost:5000/busybox镜像后,通过docker pull命令拉取本地镜像

     4、镜像持久化存储

    docker run -v /var/lib/registry/data:/var/lib/registry -d -p 5000:5000 --name registry registry:2.7

    构建外部可访问的镜像仓库(未实践)

    要构建一个支持 HTTPS 访问的安全镜像仓库,需要满足以下两个条件:

    • 拥有一个合法的域名,并且可以正确解析到镜像服务器;

    • 从证书颁发机构(CA)获取一个证书。

    通过如下命令启动镜像仓库

    docker run -d 
      --name registry 
      -v "/var/lib/registry/data:/var/lib/registry 
      -v "/var/lib/registry/certs:/certs 
      -e REGISTRY_HTTP_ADDR=0.0.0.0:443 
      -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/regisry.lagoudocker.io.crt 
      -e REGISTRY_HTTP_TLS_KEY=/certs/regisry.lagoudocker.io.key 
      -p 443:443 
      registry:2.7

    其中,使用 -v 参数把镜像数据持久化在/var/lib/registry/data目录中,同时把主机上的证书文件挂载到了容器的 /certs 目录下,同时通过 -e 参数设置 HTTPS 相关的环境变量参数,最后让仓库在主机上监听 443 端口

    启动后,可以通过docker push命令远程推送镜像

    docker tag busybox regisry.lagoudocker.io/busybox
    docker push regisry.lagoudocker.io/busybox
  • 相关阅读:
    xtrabackup执行备份要拥有的权限
    CentOS 7 下yum安装xtrabackup备份工具
    MySQL read_only选项的作用
    Linux进程管理命令
    MySQL二进制日志中保存的上下文信息
    MySQLdb的安装
    MySQL The password hash doesn't have the expected format.
    web框架本质
    进程和线程
    good blog
  • 原文地址:https://www.cnblogs.com/canghai1024/p/13673006.html
Copyright © 2011-2022 走看看