码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 搭建docker镜像仓库


    拉取镜像仓库镜像

    docker pull registry
    
    • 1

    启动镜像仓库

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

    这将使用官方的 registry 镜像来启动私有仓库。默认情况下,仓库会被创建在容器的 /var/lib/registry 目录下。你可以通过 -v 参数来将镜像文件存放在本地的指定路径。例如下面的例子将上传的镜像放到本地的 /opt/data/registry 目录

    $ docker run -d \
        -p 5000:5000 \
        -v /opt/data/registry:/var/lib/registry \
        registry
    
    • 1
    • 2
    • 3
    • 4

    在私有仓库上传、搜索、下载

    创建好私有仓库后,就可以使用```docker tag来标记一个镜像,然后推送它到仓库。例如私有仓库地址为127.0.0.1:5000`
    先在本地查看已有的镜像

    $ docker image ls
    REPOSITORY                        TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
    ubuntu                            latest              ba5877dc9bec        6 weeks ago         192.7 MB
    
    • 1
    • 2
    • 3

    使用 docker tag 将 ubuntu:latest 这个镜像标记为 127.0.0.1:5000/ubuntu:latest。
    格式为 docker tag IMAGE[:TAG] [REGISTRY_HOST[:REGISTRY_PORT]/]REPOSITORY[:TAG]

    $ docker tag ubuntu:latest 127.0.0.1:5000/ubuntu:latest
    $ docker image ls
    REPOSITORY                        TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
    ubuntu                            latest              ba5877dc9bec        6 weeks ago         192.7 MB
    127.0.0.1:5000/ubuntu:latest      latest              ba5877dc9bec        6 weeks ago         192.7 MB
    
    • 1
    • 2
    • 3
    • 4
    • 5

    使用 docker push 上传标记的镜像

    $ docker push 127.0.0.1:5000/ubuntu:latest
    The push refers to repository [127.0.0.1:5000/ubuntu]
    373a30c24545: Pushed
    a9148f5200b0: Pushed
    cdd3de0940ab: Pushed
    fc56279bbb33: Pushed
    b38367233d37: Pushed
    2aebd096e0e2: Pushed
    latest: digest: sha256:fe4277621f10b5026266932ddf760f5a756d2facd505a94d2da12f4f52f71f5a size: 1568
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    用 curl查看仓库中的镜像

    $ curl 127.0.0.1:5000/v2/_catalog
    {"repositories":["ubuntu"]}
    
    • 1
    • 2

    这里可以看到 {"repositories":["ubuntu"]},表明镜像已经被成功上传了。
    先删除已有镜像,再尝试从私有仓库中下载这个镜像

    $ docker image rm 127.0.0.1:5000/ubuntu:latest
    
    $ docker pull 127.0.0.1:5000/ubuntu:latest
    Pulling repository 127.0.0.1:5000/ubuntu:latest
    ba5877dc9bec: Download complete
    511136ea3c5a: Download complete
    9bad880da3d2: Download complete
    25f11f5fb0cb: Download complete
    ebc34468f71d: Download complete
    2318d26665ef: Download complete
    
    $ docker image ls
    REPOSITORY                         TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
    127.0.0.1:5000/ubuntu:latest       latest              ba5877dc9bec        6 weeks ago         192.7 MB
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    配置非https仓库地址

    如果你不想使用 127.0.0.1:5000 作为仓库地址,比如想让本网段的其他主机也能把镜像推送到私有仓库。你就得把例如 192.168.199.100:5000 这样的内网地址作为私有仓库地址,这时你会发现无法成功推送镜像。
    这是因为 Docker 默认不允许非 HTTPS 方式推送镜像。我们可以通过 Docker 的配置选项来取消这个限制

    {
      "registry-mirror": [
        "https://hub-mirror.c.163.com",
        "https://mirror.baidubce.com"
      ],
      "insecure-registries": [
        "192.168.199.100:5000"
      ]
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    私有仓库高级配置

    https://yeasy.gitbook.io/docker_practice/repository/registry_auth

    k8s搭建私有仓库

    使用这个helm https://github.com/lhzzz/charts/tree/master/stable/docker-registry

    • 装之前记得修改这里的host为自己的域名

    在这里插入图片描述

    helm install docker-registry -n registry .
    
    • 1
    • 然后修改/etc/hosts,加上这个域名registry.sakura.com
    • 然后在修改/etc/docker/daemon.json,加入如下这行

    在这里插入图片描述

  • 相关阅读:
    <<Java>> Hash(哈希表) 你会使用吗?知道底层原理吗?:三分钟一篇学会
    java计算机毕业设计springboot+vue中国古诗词网站(源码+系统+mysql数据库+Lw文档)
    小程序检测元素首次出现在可视区域上报埋点遇到的问题 createIntersectionObserver
    刚参加工作的表弟问我如何设计一个表
    明解STM32—GPIO理论基础知识篇之八种工作模式
    K8S Deployment 简介, 1个简单的Kubernetes Deployment YAML 文件
    更多龙蜥自研特性,生产可用的 Anolis OS 8.6 正式发布
    基于keras 卷积神经外网络搭建的手写数字识别 完整代码+数据可直接运行
    网工内推 | 云架构运维、网络工程师,base北京,最高20k
    【树莓派不吃灰】命令篇② 常用文件管理命令
  • 原文地址:https://blog.csdn.net/Canger_/article/details/125490983
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号