部署构建私有仓库---docker-registry

news/2025/3/9 13:15:32/文章来源:https://www.cnblogs.com/Qmoo/p/18757864

🚀 Docker Registry + Web UI 部署方案(轻量级)

本方案使用 Docker Registry 搭建私有镜像仓库,并通过 docker-registry-ui 提供 Web 界面,适用于 个人或小型团队

🚀 1. 部署 Docker Registry

首先,运行 Docker Registry,监听 5000 端口:

docker run -d -p 5000:5000 --restart=always --name registry registry:2
  • 这将在 5000 端口 启动 私有 Docker 镜像仓库
  • 镜像默认存储在 /var/lib/registry 目录。

📌 测试是否成功

curl http://localhost:5000/v2/_catalog

如果返回 { "repositories": [] },表示 Registry 运行正常


🚀 2. 部署 Web UI

使用 Joxit/docker-registry-ui 提供 Web 管理界面

docker run -d -p 8080:80 --restart=always --name registry-ui \-e REGISTRY_TITLE="My Private Registry" \-e NGINX_PROXY_PASS="http://registry:5000" \--link registry \joxit/docker-registry-ui:latest

📌 2.1 访问 Web UI

现在,打开浏览器,访问:

http://localhost:8080

你将看到 Docker Registry 的 Web UI 🎉。


🚀 3. 推送和拉取镜像

📌 3.1 标记本地镜像

docker tag ubuntu:latest localhost:5000/ubuntu:latest

📌 3.2 推送镜像

docker push localhost:5000/ubuntu:latest

📌 3.3 拉取镜像

docker pull localhost:5000/ubuntu:latest

📌 3.4 查看仓库中的镜像

curl http://localhost:5000/v2/_catalog

🚀 4. 配置 Docker 允许 HTTP 访问

默认情况下,Docker 不允许 HTTP 访问私有 Registry,你需要在 /etc/docker/daemon.json 添加:

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

然后重启 Docker:

systemctl restart docker

🚀 5. 配置 Registry 数据存储

如果你想 更改存储路径,可以映射一个 本地目录

docker run -d -p 5000:5000 --restart=always \-v /data/registry:/var/lib/registry \--name registry registry:2

所有的镜像将存储在 /data/registry 目录。


🚀 6. 使用 HTTPS 安全访问(推荐生产环境)

📌 6.1 生成自签名 SSL 证书

mkdir -p /certs && cd /certs
openssl req -newkey rsa:4096 -nodes -sha256 -keyout domain.key -x509 -days 365 -out domain.crt

填入证书信息时,Common Name (CN) 需填写你的 域名或 IP 地址

📌 6.2 运行带 HTTPS 的 Registry

docker run -d -p 443:5000 --restart=always \-v /certs:/certs \-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \--name registry registry:2

现在可以通过 https://your-domain.com 访问私有仓库。

📌 6.3 在 Docker 配置可信证书

domain.crt 复制到:

cp /certs/domain.crt /etc/docker/certs.d/your-domain.com/ca.crt

然后重启 Docker:

systemctl restart docker

🚀 7. 配置用户名密码认证(更安全)

如果你需要 用户名 + 密码 认证

mkdir -p /auth
docker run --entrypoint htpasswd registry:2 -Bbn myuser mypassword > /auth/htpasswd

📌 7.1 运行带认证的 Registry

docker run -d -p 5000:5000 --restart=always \-v /auth:/auth \-e "REGISTRY_AUTH=htpasswd" \-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \--name registry registry:2

📌 7.2 登录私有仓库

docker login localhost:5000

输入 myuser / mypassword 即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/895120.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VMware ESXi 6.7 U3v (ESXi670-202503001) 下载

VMware ESXi 6.7 U3v (ESXi670-202503001) 下载VMware ESXi 6.7 U3v (ESXi670-202503001) 下载 VMware ESXi 6 Extend Support Release 🆓 🔄 请访问原文链接:https://sysin.cn/blog/vmware-esxi-6/ 查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org2025-03-0…

Linux系统离线安装docker环境

1 下载docker的安装文件 下载地址:https://download.docker.com/linux/static/stable/x86_64/ 2 解压 tar -zxvf docker-18.06.3-ce.tgz 3 复制 cp ./docker/* /usr/bin 4 创建docker.service文件 cd /etc/systemd/system/ touch docker.service 5 编辑docker.service文件 vi …

告别Qt,拥抱CUTOS - 智能设备应用开发新选择

本文探讨了在智能设备应用开发领域,从传统Qt框架向新兴CUTOS框架的转变。CUTOS在开发效率、稳定性、学习门槛和生态融合等方面表现突出,将成为更具前瞻性的开发框架。一、引言 Qt是一个功能强大且历史悠久的跨平台C++应用开发框架,由芬兰公司Qt Company开发。Qt在汽车、航空…

k3s高可用集群搭建

机器统一操作 # 更新yum源数据 # 复制ContOS-Base.repo到/etc/yum.repos.d/ yum makecache yum update -y# 安装vim yum install -y vim# 关闭swap vim /etc/fstab 注释掉最后一行 # /dev/mapper/centos-swap swap swap defaults 0 0 swapoff -a#…

kylin v10 sp2升级glibc到2.29和2.31

目录环境安装glibc2.29安装glibc2.31 环境 [root@kyline10 ~]# cat /etc/os-release NAME="Kylin Linux Advanced Server" VERSION="V10 (Sword)" ID="kylin" VERSION_ID="V10" PRETTY_NAME="Kylin Linux Advanced Server V10 (…

pycharm连接CentOS虚拟机并执行Spark

pycharm连接虚拟机注意:pycahrm远程使用ssh连接虚拟机需要专业版在CentOS7的虚拟机当中,会自带一个python2.6老版本的python,所以自己准备一个python3.x版本的解释器,如python3.9 一、前置准备工作 # 安装前置依赖 yum install zlib-devel bzip2-devel openssl-devel ncurs…

02_openai开发

基本概念Tokens(标记):在自然语言处理中,token是输入文本被分割成的小单元。一个token可以是一个单词、一个子词,甚至是一个字符。这取决于文本的具体分割方式。OpenAI常用参数 1. max_tokens(最大token数) 定义:指令生成的回答中包含的最大token数。例如,如果设置为1…

day20 yum的详细的讲述

day20 yum的精讲 yum是centos 7中很重要的工具需要我们去了解和学习 1.学习的任务和背景 一般开发团队需要数据库的环境来测试程序 现在需要运维人员来协助在测试机器上Centos7上安装好 MySQL-5.6.43版本来作为前期迁移的准备的工作 同时== 配备好本地的yum源==方便后续软件包的…

Active Directory审核的常见误区(3)

一、忽略过时、未激活和孤立的用户帐户 存在未使用的用户帐户在AD域中是一个重大的安全隐患。离职员工和黑客可能会因此漏洞而去窃取企业的重要资源。这时候,制定处理离职员工的策略就显得至关重要,这包括禁用他的AD用户帐户、将他从电子邮件组中删除、撤销他对业务应用程序的…

java.net.UnknownHostException: upload-as0.qiniup.com: Name or service not known on问题排查

参考地址:https://blog.csdn.net/weixin_43700340/article/details/88393833 ping upload-as0.qiniup.com还有百度不通,但是局域网可以ping通ping网关可以ping通,ping公共地址也可以ping通如果直接ping百度的ip是可以通的通过上面的博客知道应该是DSN出了问题 也试过了这个命…

Java使用Amazon S3客户端实现前后端联动文件分片上传

在使用对象存储的时候,遇到超大文件上传的应用场景,可以通过前后端联动的方式,实现超大文件从前端直接向对象存储服务进行分片上传,具体实现过程如下: Maven依赖: <dependency><groupId>software.amazon.awssdk</groupId><artifactId>s3</art…

IOMMU和IOVA

IOMMU和IOVA 默认情况下,任何硬件都可以访问整个系统,因此它可以在任何地方执行DMA 事务。这有许多安全隐患。例如,流氓和/或不可信进程(包括在VM (虚拟机)内运行的进程)可能使用硬件设备来读写内核空间,和几乎其他任何存储位置。为了解决这个问题,现代系统配备了输入输出…