zoukankan      html  css  js  c++  java
  • 搭建docker私有镜像仓库

    一、前言

      一般来说,我们都是通过docker hub、阿里云镜像仓库或者是其他的镜像仓库里拉取镜像,并且来使用的,虽然会带来一定的便捷性,但同时也会带来两方面的问题,一是他们走的是公网,速度不够快,二是假如公司的业务是做金融、证券或其他隐私行行业的话,会有一定的安全性问题,所以,搭建公司的私有镜像仓库就显得很有必要。

    二、具体步骤

    1、拉取registry镜像

    docker pull registry:2

    2、配置私有仓库地址

    vim /etc/docker/daemon.json

    输入如下参数,注意修改为自己的ip地址:

    "insecure-registries": ["10.211.55.4:5000"]

    :wq 保存退出,然后我们重启启动一下 docker

    systemctl restart docker

    3、创建容器

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

    部分参数说明:

    • -d:让容器在后台运行
    • -p:指定容器内部使用的网络端口映射到我们使用的主机上
    • --name:指定容器创建的名称
    • --restart:容器本身或者是docker进程重启时,会一并重启

    容器运行命令的其他参数说明:

    • --network 指定容器运⾏的⽹路模式
    • -v 指定需要挂载的数据卷
    • -env 指定需要传递给容器的环境变量

    4、重新加载配置

    sudo systemctl daemon-reload

    然后浏览器访问:http://10.211.55.4:5000/v2/_catalog

     如果访问不到,尝试关闭防火墙:

    systemctl stop firewalld

    如果还是访问不不到,可以重启一下docker

    sudo systemctl restart docker

    然后重新运行一下容器

    5、验证上传镜像到私有仓库

    我们使用HelloWorld镜像进行测试,首先先拉取一下:

    docker pull hello-world

     拉取之后我们看一下镜像名称及版本:

     至此我们就有了一个 hello-world镜像,接下来我们使用 push 指令将镜像推送到刚刚搭建的registry中:

    # 标记hello-world该镜像需要推送到私有仓库
    docker tag hello-world:latest 127.0.0.1:5000/hello-world:latest
    
    # 通过push指令推送到私有仓库
    docker push 127.0.0.1:5000/hello-world:latest

     再来访问:http://10.211.55.4:5000/v2/_catalog

     我们可以看到私有仓库目录已经有刚刚推送上去的 hello-world 镜像了

    6、验证从私有仓库下载镜像

    验证完了上传,我们再来测试一下下载镜像

    # 格式如下:
    docker pull 127.0.0.1:5000/镜像名称:镜像版本号
    
    # 以hello-world为例:
    docker pull 127.0.0.1:5000/hello-world:latest
    #或者是
    docker pull  10.211.55.4:5000/hello-world:latest

     通过ip也是可以拉取成功的,但是在这再额外补充一下,有的小伙伴可能提示如下:

     这种显然是拉取失败了,提示大致就是,尝试从https上拉取,但是返回的是http响应,如何解决呢?

    我们可以通过如下进行处理一下,xxx修改为自己的ip地址:

    echo '{ "insecure-registries":["xxx.xxx.xxx.xxx:5000"] }' > /etc/docker/daemon.json

    至此整个搭建过程完毕

    知道、想到、做到、得到
  • 相关阅读:
    STL的移动算法
    mysql insert和前台显示乱码
    垃圾回收算法简单介绍——JVM读书笔记<二>
    UVA
    读取系统执行状态的shell脚本
    【web 回车】web项目 注册或登录页面 回车登录无效,解决方案
    【maven】maven项目移除Maven Dependencies后如何再添加进去
    【web.xml】报错java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
    【shiro】关于shiro匹配URL的小用法
    【Sets】使用Google Guava工程中Sets工具包,实现集合的并集/交集/补集/差集
  • 原文地址:https://www.cnblogs.com/Durant0420/p/15466848.html
Copyright © 2011-2022 走看看