CentOS环境下如何搭建Docker私有仓库?

在CentOS系统中搭建Docker私有仓库(Registry),是企业级容器化部署的重要环节,可实现对镜像的全存储与高效分发,本文将系统介绍其部署流程及核心配置要点。

CentOS环境下如何搭建Docker私有仓库?

环境准备与基础配置

需确保CentOS版本为7及以上,内核支持Docker运行(建议3.10+),首先更新系统并安装必要工具:

yum update -y && yum install -y yum-utils device-mapper-persistent-data lvm2

接着配置Docker官方源并安装:

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo  
yum install -y docker-ce docker-ce-cli containerd.io

启动Docker服务并设置开机自启:

systemctl start docker && systemctl enable docker

私有仓库部署步骤

拉取官方Registry镜像

docker pull registry:latest

运行Registry容器

通过以下命令创建并启动容器,监听5000端口(默认 Registry 端口):

docker run -d -p 5000:5000 --name my-registry -v /opt/registry/data:/var/lib/registry registry:latest

参数说明:-v 将宿主机目录挂载至容器内部,实现数据持久化;--name 自定义容器名称。

配置Docker信任私有仓库

由于默认Docker仅信任HTTPS仓库,需修改daemon.json允许HTTP通信:

CentOS环境下如何搭建Docker私有仓库?

{
  "insecure-registries": ["192.168.1.100:5000"]
}

保存文件后重启Docker服务使配置生效:

systemctl restart docker

镜像上传与验证

标记本地镜像

以Nginx为例,将其打上私有仓库标签:

docker tag nginx:latest 192.168.1.100:5000/my-nginx:latest

推送镜像至仓库

执行推送操作:

docker push 192.168.1.100:5000/my-nginx:latest

验证镜像存储

可通过以下方式检查仓库状态:

  • 访问 http://192.168.1.100:5000/v2/_catalog 查看镜像列表
  • 进入挂载目录 /opt/registry/data 查看文件结构
操作 命令示例
启动Registry容器 docker run -d -p 5000:5000 registry
标记镜像 docker tag nginx:latest 私有地址/nginx
推送镜像 docker push 私有地址/nginx
查看仓库目录 ls /opt/registry/data

高级配置选项

若需启用HTTPS加密传输,需生成SSL证书并修改容器启动参数:

docker run -d -p 443:443 --restart=always --name registry 
-v /path/to/certs:/certs 
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt 
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key 
registry:latest

同时需在客户端添加CA证书信任,确保安全通信。

CentOS环境下如何搭建Docker私有仓库?


FAQs
Q1: 如何解决“denied: requested access to the resource is denied”错误?
A1: 该错误通常因未正确标记镜像或Docker未信任私有仓库导致,请确认:① 镜像已使用 docker tag 打上私有仓库地址前缀;② 客户端 daemon.json 中包含正确的 insecure-registries 配置且已重启Docker。

Q2: 私有仓库如何实现用户认证?
A2: 可通过添加 .htpasswd 文件启用基本认证,首先安装 httpd-tools

yum install -y httpd-tools
htpasswd -Bc /opt/auth/htpasswd admin

然后修改Registry容器启动参数:

docker run -d -p 5000:5000 --name registry 
-v /opt/registry/data:/var/lib/registry 
-v /opt/auth:/auth 
-e "REGISTRY_AUTH=htpasswd" 
-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" 
registry:latest

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-17 14:39
下一篇 2025-10-17 14:48

相关推荐

  • 如何有效查看服务器中的磁盘阵列配置?

    本文主要介绍了如何查看服务器上的磁盘阵列。需要登录到服务器,然后使用适当的工具或命令行界面来检查磁盘阵列的配置和状态。这个过程可能需要一些专业知识,但可以通过查阅相关文档或寻求专业人士的帮助来完成。

    2024-08-10
    008
  • 服务器_服务器组

    服务器是提供数据存储、处理和网络服务的高性能计算机。服务器组是由多台服务器组成,通过集群技术协同工作,以提高服务的可靠性、可用性和性能。

    2024-07-17
    0020
  • 分析数据仓库_数据仓库

    数据仓库是一种大型、集中式数据库,用于存储和管理企业的各种业务数据。它通过整合和分析这些数据,为企业决策提供支持。

    2024-06-23
    005
  • Centos退出ping命令的详细操作步骤是什么?

    在CentOS系统中,ping命令是常用的网络诊断工具,用于测试与目标主机的连通性,在实际操作中,用户常常需要终止正在运行的ping进程,以下是关于CentOS系统中退出ping命令的详细方法及注意事项,常规退出方法在终端中使用ping命令时,默认情况下会持续发送数据包直至手动终止,最直接的退出方式是:组合键中……

    2025-10-31
    0010

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信