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拉取都正常了!!

    
    
  • 相关阅读:
    修改mysql密码的四种方法
    phpcms模板生成原理
    如何给虚拟主机安装phpMyAdmin
    如何修改数据库密码
    web 服务器、PHP、数据库、浏览器是如何实现动态网站的
    编写shell时,提示let/typeset:not found
    Linux下采用VI编辑器删除复制或移动多行文本内容
    BASH 学习笔记小结
    list容器的C++代码实现
    Groovy入门教程
  • 原文地址:https://www.cnblogs.com/chenghu/p/14707969.html
Copyright © 2011-2022 走看看