Docker Registry私有仓库简单搭建过程

 更新时间:2025年12月22日 15:21:05   作者:π大星星️  
本文介绍了如何在本地搭建Docker私有Registry仓库,并实现镜像的上传和管理,通过私有仓库,可以方便地在本地网络中存储和分发Docker镜像,提高开发和部署效率

一、概述

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

二、搭建步骤

(一)下载 Docker Registry 镜像

命令

docker pull registry

解析

  • docker pull 是 Docker 的命令,用于从 Docker Hub 下载指定的镜像。
  • registry 是 Docker 官方提供的 Registry 镜像,用于搭建私有仓库。
  • 默认情况下,docker pull 会下载最新版本的镜像(latest 标签)。

(二)启动 Docker Registry 容器

命令

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

解析

  • -d:表示以守护进程模式运行容器(后台运行)。
  • -p 5000:5000:将容器的 5000 端口映射到宿主机的 5000 端口,用于访问私有仓库。
  • --restart=always:设置容器在退出后自动重启,确保仓库服务始终可用。
  • --name registry:为容器指定名称 registry,便于后续管理。
  • registry:指定使用的镜像名称(即之前下载的 registry 镜像)。

验证容器是否启动成功

docker ps

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

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

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

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

vim /etc/docker/daemon.json

添加以下内容:

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

重启 Docker 服务

systemctl restart docker

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

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

标记镜像

docker tag nginx:latest 192.168.65131:5000/nginx:latest
  • docker tag:用于为镜像重新标记一个新的名称和标签。
  • nginx:latest:本地已有的镜像名称和标签。
  • nginx:5000/nginx:latest:目标仓库地址和镜像名称。

推送镜像到私有仓库

docker push 192.168.65.131:5000/nginx:latest
  • docker push:将标记后的镜像推送到指定的仓库地址。
  • 如果推送成功,会显示镜像层的上传进度和最终的摘要信息。

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

通过 API 查看仓库中的镜像

curl 192.168.65.131:5000/v2/_catalog

如果返回类似以下内容,说明镜像已成功上传:

三、常见问题及解决方法

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

问题描述

在推送或拉取镜像时,可能会遇到以下错误:

Get "https://192.168.65.131:5000/v2/": dial tcp 192.168.65.131:5000: connect: connection refused

解决方法

  • 确保 /etc/docker/daemon.json 文件中正确配置了 insecure-registries
  • 确保 Docker 服务已重启。
  • 确保仓库地址正确,且防火墙允许访问 5000 端口。

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

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

解决方法

  • 检查仓库地址是否正确,确保 IP 地址和端口无误。
  • 确保网络连接正常,可以尝试 pingcurl 测试连通性。
  • 如果问题仍然存在,可能是网络配置或防火墙限制,建议检查网络设置或联系网络管理员。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 教你使用Portainer管理多台Docker容器环境的方法

    教你使用Portainer管理多台Docker容器环境的方法

    这篇文章主要介绍了Portainer管理多台Docker容器环境,本文给大家介绍的非常详细,包括环境准备及管理docker的详细过程,需要的朋友可以参考下
    2021-11-11
  • Docker容器无法解析域名的处理

    Docker容器无法解析域名的处理

    这篇文章主要介绍了Docker容器无法解析域名的处理问题,具有很好的参考价值,希望对大家有所帮助,
    2023-11-11
  • mac系统使用docker搭建nacos(亲测有效)

    mac系统使用docker搭建nacos(亲测有效)

    本文主要介绍了mac系统使用docker搭建nacos,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-08-08
  • Docker镜像拉取失败问题分析及解决方案

    Docker镜像拉取失败问题分析及解决方案

    在使用Docker时,我们经常需要从Docker镜像仓库中拉取镜像,以便于在本地机器上运行,下面这篇文章主要给大家介绍了关于Docker镜像拉取失败问题分析及解决方案,需要的朋友可以参考下
    2024-08-08
  • 详解如何使用Docker打包Python项目

    详解如何使用Docker打包Python项目

    Docker是一种开源的容器化平台,可以将应用程序及其依赖项打包到一个轻量级、可移植的容器中,通过使用Docker,可以简化Python项目的部署和运行,提高开发效率和应用程序的可移植性,本文将介绍如何使用Docker来打包Python项目,需要的朋友可以参考下
    2023-11-11
  • docker常用命令操作方法

    docker常用命令操作方法

    最近几天都在研究docker,今天给大家分享docker一些常用的命令,需要的朋友可以参考下
    2017-11-11
  • docker的卷映射手动指定位置的操作方法

    docker的卷映射手动指定位置的操作方法

    Docker中手动指定卷映射位置通过绑定挂载实现,使用-v或--mount参数,语法清晰,支持更多选项,注意宿主机目录存在性、权限和SELinux限制,本文介绍docker的卷映射手动指定位置的操作方法,感兴趣的朋友一起看看吧
    2025-02-02
  • docker之如何设置日志文件大小及个数

    docker之如何设置日志文件大小及个数

    这篇文章主要介绍了docker之如何设置日志文件大小及个数问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 关于Docker加载镜像连接超时的快速解决办法

    关于Docker加载镜像连接超时的快速解决办法

    文章指导如何检查WSL和Docker状态,解决网络连接超时问题,包括验证DNS解析、调整网络设置及重启服务,确保Docker能正常拉取镜像,本文重点给大家介绍Docker加载镜像连接超时的解决办法,感兴趣的朋友跟随小编一起看看吧
    2025-08-08
  • 使用Docker registry镜像创建私有仓库的方法

    使用Docker registry镜像创建私有仓库的方法

    本篇文章主要介绍了使用Docker registry镜像创建私有仓库的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-04-04

最新评论