当前位置: 首页 > news >正文

nginx 搭建docker 似有hub仓库

当使用 SSL/TLS 证书并希望通过 HTTPS 访问 Docker Registry 时,通常会使用 Nginx 作为反向代理。这样做可以为 Docker Registry 提供 HTTPS 支持,同时还可以利用 Nginx 的其他功能,如负载均衡和缓存。下面是使用 Nginx 作为反向代理设置私有 Docker Registry 的步骤:

1. 安装 Docker

如果您的服务器上还没有 Docker,请首先安装:

sudo yum install docker
sudo systemctl start docker
sudo systemctl enable docker

2. 运行 Docker Registry

首先,启动一个不带 SSL 的 Docker Registry 容器:

sudo docker run -d \--restart=always \--name registry \-v /path/to/local/directory:/var/lib/registry \-p 5000:5000 \registry:2

这里,/path/to/local/directory 是用于持久化存储 Docker 镜像的本地目录。

3. 安装 Nginx

安装 Nginx 服务器:

sudo yum install nginx

4. 配置 SSL 证书

将您的 SSL 证书(PEM 格式)和私钥(KEY 文件)放置到服务器上的一个安全的目录中,并确保 Nginx 可以访问它们。例如:

sudo mkdir -p /etc/nginx/certs
sudo cp path/to/your/certificate.pem /etc/nginx/certs/
sudo cp path/to/your/private.key /etc/nginx/certs/

5. 配置 Nginx 作为反向代理

创建一个 Nginx 配置文件,以便将请求从 HTTPS 端口代理到您的 Docker Registry。例如,创建一个新的配置文件 /etc/nginx/conf.d/docker-registry.conf

server {listen 443 ssl;server_name hub.shtcetc.com;ssl_certificate /etc/nginx/certs/certificate.pem;ssl_certificate_key /etc/nginx/certs/private.key;client_max_body_size 0; # 无限制上传大小chunked_transfer_encoding on;location / {proxy_pass http://localhost:5000;proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}
}

这会配置 Nginx 从端口 443 接收 HTTPS 请求并将它们转发到本地的 5000 端口(Docker Registry 运行的地方)。

6. 启动 Nginx

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

sudo systemctl start nginx
sudo systemctl enable nginx

7. DNS 配置

确保您的域名 hub.shtcetc.com 的 DNS 记录指向托管 Docker Registry 和 Nginx 的服务器 IP 地址。

8. 推送和拉取镜像

现在,您可以通过域名 hub.shtcetc.com 推送和拉取 Docker 镜像。

注意

  • 确保防火墙和安全组设置允许从 HTTPS 端口(443)访问。
  • 如果您的 SSL 证书是由受信任的 CA 签发的,客户端通常无需特别配置即可信任该证书。
  • 检查并定期更新您的 SSL 证书以防止服务中断。
  • 这些步骤假设 hub.shtcetc.com 域名已经指向您的服务器,并且服务器可以接受公共的 HTTPS 请求。

相关文章:

  • SqlAlchemy使用教程(五) ORM API 编程入门
  • MetaGPT-打卡-day2,MetaGPT框架组件学习
  • 网络安全概述
  • 旧路由重置新路由设置新路由设置教程|适用于自动获取IP模式
  • C#调用Newtonsoft.Json将bool序列化为int
  • HttpServletRequest getHeader、getHeaders、getIntHeader、getDateHeader区别
  • EMI兼容测试方案——匹配不同测试标准,准确高效!
  • STM32-串口解析框架
  • 使用Nginx和Fancyindex组合搭建文件下载站点详细教程
  • 【Linux】Shell 命令以及运行原理
  • 【Linux】进程退出和进程等待
  • 单点安装3.6.23_ubuntu18.04
  • 前端构建工具对比 webpack、vite、esbuild等
  • 广和通AI解决方案“智”赋室外机器人迈向新天地!
  • 使用Python自动化操作手机,自动执行常见任务,例如滑动手势、呼叫、发送短信等等
  • [笔记] php常见简单功能及函数
  • ES6之路之模块详解
  • Redis 中的布隆过滤器
  • Vue UI框架库开发介绍
  • webpack+react项目初体验——记录我的webpack环境配置
  • webpack4 一点通
  • 阿里云购买磁盘后挂载
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 飞驰在Mesos的涡轮引擎上
  • 回顾2016
  • 简单实现一个textarea自适应高度
  • 区块链将重新定义世界
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 探索 JS 中的模块化
  • 协程
  • 应用生命周期终极 DevOps 工具包
  • (1)bark-ml
  • (C++)八皇后问题
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (pytorch进阶之路)扩散概率模型
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)socket Aio demo
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (转)树状数组
  • . NET自动找可写目录
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .mysql secret在哪_MYSQL基本操作(上)
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .net 调用php,php 调用.net com组件 --
  • .NET 中 GetProcess 相关方法的性能
  • .net6+aspose.words导出word并转pdf
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • @WebService和@WebMethod注解的用法
  • @基于大模型的旅游路线推荐方案
  • [ vulhub漏洞复现篇 ] Django SQL注入漏洞复现 CVE-2021-35042
  • [ vulhub漏洞复现篇 ] Grafana任意文件读取漏洞CVE-2021-43798