Docker Registry 私有仓库简单搭建

一、概述

本文将详细介绍如何在本地搭建一个 Docker 私有 Registry 仓库,并实现镜像的上传和管理。通过私有仓库,可以方便地在本地网络中存储和分发 Docker 镜像,提高开发和部署效率。

二、搭建步骤

(一)下载 Docker Registry 镜像

  1. 命令

    docker pull registry
  2. 解析

    • docker pull 是 Docker 的命令,用于从 Docker Hub 下载指定的镜像。

    • registry 是 Docker 官方提供的 Registry 镜像,用于搭建私有仓库。

    • 默认情况下,docker pull 会下载最新版本的镜像(latest 标签)。

(二)启动 Docker Registry 容器

  1. 命令

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

    • -d:表示以守护进程模式运行容器(后台运行)。

    • -p 5000:5000:将容器的 5000 端口映射到宿主机的 5000 端口,用于访问私有仓库。

    • --restart=always:设置容器在退出后自动重启,确保仓库服务始终可用。

    • --name registry:为容器指定名称 registry,便于后续管理。

    • registry:指定使用的镜像名称(即之前下载的 registry 镜像)。

  3. 验证容器是否启动成功

    docker ps

    如果看到名为 registry 的容器正在运行,并且端口映射正确,说明启动成功。

(三)配置 Docker 客户端以信任私有仓库

由于私有仓库默认使用 HTTPS协议,Docker 客户端需要配置为信任该仓库

  1. 编辑 /etc/docker/daemon.json 文件

    vim /etc/docker/daemon.json

    添加以下内容:

    {
        "insecure-registries": ["192.168.65.131:5000"]
    }
    • insecure-registries:指定不安全的仓库地址,允许 Docker 客户端通过 HTTP 协议访问该地址。

  2. 重启 Docker 服务

    systemctl restart docker

    重启 Docker 服务后,配置生效。

(四)上传镜像到私有仓库

  1. 标记镜像

    docker tag nginx:latest 192.168.65131:5000/nginx:latest
    • docker tag:用于为镜像重新标记一个新的名称和标签。

    • nginx:latest:本地已有的镜像名称和标签。

    • nginx:5000/nginx:latest:目标仓库地址和镜像名称。

  2. 推送镜像到私有仓库

    docker push 192.168.65.131:5000/nginx:latest
    • docker push:将标记后的镜像推送到指定的仓库地址。

    • 如果推送成功,会显示镜像层的上传进度和最终的摘要信息。

(五)验证镜像是否上传成功

  1. 通过 API 查看仓库中的镜像

    curl 192.168.65.131:5000/v2/_catalog
    • 如果返回类似以下内容,说明镜像已成功上传:

三、常见问题及解决方法

(一)无法连接到私有仓库

  1. 问题描述: 在推送或拉取镜像时,可能会遇到以下错误:

    Get "https://192.168.65.131:5000/v2/": dial tcp 192.168.65.131:5000: connect: connection refused
  2. 解决方法

    • 确保 /etc/docker/daemon.json 文件中正确配置了 insecure-registries

    • 确保 Docker 服务已重启。

    • 确保仓库地址正确,且防火墙允许访问 5000 端口。

(二)网络问题导致无法解析地址

  1. 问题描述: 如果尝试访问 http://192.168.65.131:5000https://192.168.65.131:5000/v2/ 时,可能会遇到解析失败的问题。

  2. 解决方法

    • 检查仓库地址是否正确,确保 IP 地址和端口无误。

    • 确保网络连接正常,可以尝试 pingcurl 测试连通性。

    • 如果问题仍然存在,可能是网络配置或防火墙限制,建议检查网络设置或联系网络管理员。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值