zoukankan      html  css  js  c++  java
  • Docker学习笔记:本地私有仓库

    Docker 官方提供了一个搭建私有仓库的镜像 registry ,只需把镜像下载下来,运行容器并暴露5000端口,就可以使用了。

    $  docker pull registry:2
    
    $  docker run -d -v /opt/registry:/var/lib/registry -p 8080:5000 --name registry-test registry:2

    Registry服务默认会将上传的镜像保存在容器的/var/lib/registry,我们将主机的/opt/registry目录挂载到该目录,即可实现将镜像保存到主机的/opt/registry目录了。

    浏览器访问http://localhost:8080/v2,出现下面情况说明registry运行正常。

     

    #要通过docker tag将该镜像标志为要推送到私有仓库:
    $  docker tag nginx:latest localhost:8080/nginx:latest
    
    #通过 docker push 命令将 nginx 镜像 push到私有仓库中:
    $  docker push localhost:8080/nginx:latest

    再去访问 http://localhost:8080/v2/_catalog 查看私有仓库目录,可以看到刚上传的镜像了:

     

    #拉取本地私有仓库的镜像,使用如下命令:
    $  docker pull localhost:8080/nginx:latest

    问题1.

        Docker默认使用的是https,但是搭建私有镜像默认使用的是http服务,所以在拉去私有镜像或者下载时会出现以下类似的错误:

    The push refers to repository [aiho.site:8080/redis]
    Get https://aiho.site:8080/v2/: http: server gave HTTP response to HTTPS client

     解决办法:

         修改docker daemon的启动参数(需要访问仓库的其他机器),添加如下参数,表示信任这个私有仓库,不进行安全证书检查(centos7为例)

    $  vi /etc/docker/daemon.json
    
    {
       "insecure-registries":["本地仓库所在IP:8080"]
    }

    下面是我的配置:

    #然后重启docker服务,重启registry服务,

    $  systemctl restart docker
    $  docker restart registry-test

    再去推送到本地仓库活或者其他IP拉取都正常了!!

    
    
  • 相关阅读:
    vscode安装设置go
    Go开发环境搭建
    使用Docker镜像
    Docker for mac安装
    封装request.get_params批量取值
    Python之日志处理(logging模块)
    Python3 urllib.parse 常用函数示例
    前端之CSS属性相关
    前端之CSS选择器
    前端之CSS介绍
  • 原文地址:https://www.cnblogs.com/chenghu/p/14707969.html
Copyright © 2011-2022 走看看