首页 > 其他分享 >Docker仓库之Registry私有镜像仓库的搭建与使用

Docker仓库之Registry私有镜像仓库的搭建与使用

时间:2024-11-03 18:31:28浏览次数:1  
标签:5000 仓库 私有 Registry 镜像 Docker docker registry

本章将和大家分享Docker仓库之Registry私有镜像仓库的搭建与使用。废话不多说,下面我们直接进入主题。

一、官方标配:Registry私有镜像仓库

Docker Hub作为Docker默认官方公共镜像仓库,如果想要自己搭建私有镜像仓库,官方也提供了Registry镜像,使得我们搭建私有仓库变得非常简单。

所谓私有仓库,也就是在本地(局域网)搭建的一个类似公共仓库的东西,搭建好之后,我们可以将镜像提交到私有仓库中。这样我们既能使用 Docker 来运行我们的项目镜像,也避免了商业项目暴露出去的风险。

下面就是详细的基于Registry搭建私有仓库的步骤,首先我们准备了两台Linux服务器,他们的角色如下:

主机名 角色 备注
192.168.4.250 registry-server 部署registry容器
192.168.4.251 registry-consumer 从registry服务器上下载镜像使用

二、搭建镜像仓库

1、拉取私有仓库(registry)镜像

docker pull registry

2、创建并启动一个私有仓库(registry)容器

docker run -d -v /opt/images/registry:/var/lib/registry \
-p 5000:5000 \
--restart=always \
--name tianya-registry registry

此处的反斜杠 “\” 在Linux中表示换行的意思。

3、测试私有仓库

在浏览器中输入http://<your-server-ip>:5000/v2/_catalog,将<your-server-ip>替换为你的服务器IP地址,如果能够正常访问,说明私有仓库搭建成功。

也可以在客户端查看私有镜像仓库中的所有镜像:

curl http://<your-server-ip>:5000/v2/_catalog

这里返回的json数据代表仓库中暂无镜像,因为我们还没有上传任何镜像。

三、上传镜像到私有仓库

1、配置私有仓库的可信任设置

首先,为了让客户端服务器能够快速地访问刚刚在服务端搭建的镜像仓库(默认情况下是需要配置HTTPS证书的),这里简单在客户端配置一下私有仓库的可信任设置让我们可以通过HTTP直接访问。

vim /etc/docker/daemon.json

加上下面这一句,这里的“your-server-ip”请替换为你的服务器外网IP地址:

{
    "insecure-registries": [
        "your-server-ip:5000"
    ]
}

示例:

保存成功后,重新加载配置并重启Docker服务:

sudo systemctl daemon-reload
sudo systemctl restart docker

2、标记镜像

docker tag <image-id> <your-server-ip>:5000/<image-name>:<image-version>
或
docker tag your-image-name:tagname your-server-ip:5000/your-image-name:tagname

其中将<image-id>替换为你要上传的镜像的ID,<your-server-ip>替换为你的服务器IP地址,<image-name>和<image-version>分别替换为镜像的名称和版本号(标签名)。

示例:

docker tag nginx:latest 192.168.4.250:5000/nginx:v1
或
docker tag 39286ab8a5e1 192.168.4.250:5000/nginx:v1

3、推送镜像到私有仓库

docker push <your-registry-server-ip>:5000/<your-image-name>:<tagname>

示例:

docker push 192.168.4.250:5000/nginx:v1

推送完成后,可以查看一下是否有真正的推送成功:

也可以在客户端查看私有镜像仓库中的所有镜像:

curl http://<your-server-ip>:5000/v2/_catalog

可以看到,推送成功了。

四、从私有仓库拉取镜像

1、配置私有仓库的可信任设置

同样的,需要从私有仓库拉取镜像的客户端也需要配置私有仓库的可信任设置:

vim /etc/docker/daemon.json

加上下面这一句,这里的“your-server-ip”请替换为你的服务器外网IP地址:

{
    "insecure-registries": [
        "your-server-ip:5000"
    ]
}

示例:

保存成功后,重新加载配置并重启Docker服务:

sudo systemctl daemon-reload
sudo systemctl restart docker

2、拉取私有仓库中的镜像

docker pull <your-server-ip>:5000/<your-image-name>:<tagname>

示例:

docker pull 192.168.4.250:5000/nginx:v1

可以发现拉取成功了。 

3、查看私有仓库中的镜像都有哪些版本(tag)

如果想要知道要下载的镜像都有哪些版本(tag),可以通过下面这个api来获取:

curl http://<your-server-ip>:5000/v2/<your-image-name>/tags/list

示例:

curl http://192.168.4.250:5000/v2/nginx/tags/list

至此本文就全部介绍完了,如果觉得对您有所启发请记得点个赞哦!!!

 

此文由博主精心撰写转载请保留此原文链接:https://www.cnblogs.com/xyh9039/p/18509420

版权声明:如有雷同纯属巧合,如有侵权请及时联系本人修改,谢谢!!!

标签:5000,仓库,私有,Registry,镜像,Docker,docker,registry
From: https://www.cnblogs.com/xyh9039/p/18509420

相关文章

  • CentOS基于nginx构建本地YUM仓库
    #0.开启yum下载缓存sed-i'3ckeepcache=1'/etc/yum.conf#1.安装插件yuminstall-yyum-plugin-downloadonlycreatereporsync#2.创建仓库目录mkdir-p/mirrors/centos#3.下载文件或上传文件yuminstallnginx-y--downloadonly--downloaddir=/mirrors/centos#只下载......
  • Docker | 创建私有库并了解将项目放入和拉取到私有库的流程
    搭建私有库并推送镜像DockerRegistry1.下载Dockerregistry镜像2.运行私有库Registry,相当于本地有个私有Dockerhub3.ubuntu增加ifconfig命令并生成新镜像⭐4.curl验证私服库上有什么镜像什么是curl?5.将新镜像修改符合私服规范的Tag6.修改配置文件使之支持http7.......
  • docker bulid tag push到自己的docker hub 仓库
      -t(或 --tag)参数:用于给构建的镜像指定标签(tag)。标签的格式通常是 [仓库名/][用户名/]镜像名:版本号-f(或 --file)参数: 指定构建镜像所使用的 Dockerfile 的路径。默认情况下,dockerbuild 会在当前目录下查找名为 Dockerfile 的文件,但通过这个参数可以指定其他位......
  • java+vue计算机毕设服装店仓库管理系统【开题+程序+论文+源码】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在当今竞争激烈的服装零售行业中,高效的仓库管理对于提升店铺运营效率和客户满意度至关重要。随着服装款式和库存量的不断增加,传统的人工管理方式已难......
  • Ubuntu 22.04 镜像源仓库
    1.先备份cp/etc/apt/sources.listcp/etc/apt/sources.list.bak2.配置文件gedit/etc/apt/sources.list3.替换文本#aliyundebhttp://mirrors.aliyun.com/ubuntu/lunarmainrestricteduniversemultiversedeb-srchttp://mirrors.aliyun.com/ubuntu/lunarmainrest......
  • Docker和k8s核心概念(理解友好版)
    背景这是在HWL负责网校云业务线测试时,给同事分享的基础概念文档。目录:一.Docker核心概念二.Kubernetes是什么及架构三.Kubernetes核心概念四.Deployment部署Pod操作一、Docker核心概念 1、为什么是Docker虚拟机:基础设施(Infrastructure)。服务器,或者是云主机。主......
  • springboot+vue超市仓库管理系统【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着现代商业的快速发展,超市作为零售业的重要组成部分,其运营效率和管理水平直接关系到企业的竞争力。超市仓库作为商品存储和流转的关键环节,其管理效率直接影响到超市的运营成本和顾客满意度。然而,传统的人工管理方式存在诸多不足,如信......
  • dockerfile 和 docker compose
    目录1.dockerfile和dockercompose区别 主要区别目的:格式:使用场景:2.Dockerfile2.1基本格式 2.2模块解析 2.3例子 3.dockercompose 3.1安装 3.2格式 3.3执行1.dockerfile和dockercompose区别 Dockerfile和DockerCompose是Docker生态系统中两个......
  • docker对nginx.conf进行修改后页面无变化或页面报错
    可能是因为没有重启nginx容器可以执行dockerrestartnginx重启nginx试试引入了其他的配置文件本人安装的是docker默认的nginx,自带了一个default.conf的配置文件,并且在nginx.conf中还引入了这个文件,后面我还对nginx.conf添加了一个server并且端口号都是80,在打印dockerl......
  • dockerfile中copy与run区别
    本文记录一个很简单的问题,记录该文章的原因是在调试过程中,老眼昏花,因为copy和run的原因,多排错一小时,特此记录。首先看看以下。 COPY:功能:COPY是用来将构建上下文(本地机器的文件系统)中的文件或目录复制到Docker镜像中的指定位置。它只是一个复制操作,不执行......