专属
文档
插件
助手
邀请
顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像

交易
充值流量我的订单

文档

工具

功能
提交工单页面收录

帮助
轩辕镜像免费版

其他
关于我们网站地图
热门搜索:
portus

sshipway/portus

sshipway

Portus是Docker Registry v2.1及以上版本的授权服务器和用户界面,提供细粒度权限控制、镜像管理及Web界面,基于SUSE/Portus分支构建,支持自托管及多种认证方式。

23 次收藏下载次数: 0状态:社区镜像维护者:sshipway仓库类型:镜像最近更新:10 年前
让 AI 帮你使用轩辕镜像? · 展开查看说明

如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。

只需在 AI 对话中先发送下面这句话即可:

请先完整阅读并严格遵守以下文档中的全部规则与要求:

https://xuanyuan.cloud/agents.md

在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。

查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

轩辕镜像,让镜像更快,让人生更轻。点击查看
中文简介
标签下载
镜像标签列表与下载命令
轩辕镜像,让镜像更快,让人生更轻。点击查看

镜像概述

Portus是Docker Registry v2.1及以上版本的授权服务器和用户界面,基于sshipway/Portus仓库构建(SUSE/Portus的分支)。它实现了Docker Registry API v2的认证机制,支持Registry 2.1、2.2和2.3版本,提供用户和团队管理、镜像权限控制、Web界面等功能。容器包含初始化脚本,可自动处理数据库初始化、证书创建、Nginx SSL配置等。

核心功能和特性

细粒度权限控制

  • 支持用户和团队管理,用户拥有个人Docker命名空间,团队可共享命名空间访问权限
  • 实现Docker Registry的基于令牌的认证系统,控制镜像的拉取(pull)和推送(push)权限

Web界面

  • 提供Docker镜像的可视化管理界面,基于用户权限显示可访问的镜像
  • 支持镜像搜索、标签查看及收藏功能

自托管能力

  • 可部署在私有基础设施,完全控制数据和服务,无需依赖第三方服务

其他主要特性

  • 与私有Registry同步,自动获取镜像和标签信息
  • 支持LDAP用户认证(含StartTLS)
  • 活动审计功能,记录Registry和Portus的操作日志
  • 支持临时禁用用户账号
  • Gravatar头像集成
  • SMTP邮件通知配置

使用场景和适用范围

Portus适用于需要搭建私有Docker镜像仓库并进行精细化权限管理的场景,包括:

  • 企业内部Docker镜像管理,控制不同团队/用户的镜像访问权限
  • 私有Registry的可视化管理,简化镜像查找和版本控制
  • 需要集成LDAP等企业认证系统的环境
  • 对镜像操作审计和安全有要求的组织

使用方法和配置说明

环境要求

  • 依赖MySQL数据库(用于存储用户、权限等数据)
  • (可选)Nginx容器用于SSL卸载和反向代理
  • (可选)Docker Registry 2.1+实例

环境变量说明

环境变量描述
PORTUS_MACHINE_FQDNPortus服务器的完全限定域名
PORTUS_KEY_PATH证书密钥路径,若不存在将自动生成自签名证书
PORTUS_PRODUCTION_HOSTMySQL数据库主机
PORTUS_PRODUCTION_DATABASE数据库名称
PORTUS_PRODUCTION_USERNAME数据库用户名
PORTUS_PRODUCTION_PASSWORD数据库密码
PORTUS_PASSWORDPortus管理员密码
PORTUS_SECRET_KEY_BASERails应用的密钥
PORTUS_LDAP_ENABLED是否启用LDAP认证(true/false)
PORTUS_LDAP_HOSTNAMELDAP服务器主机名
PORTUS_LDAP_PORTLDAP服务器端口
PORTUS_LDAP_METHODLDAP连接方法(如starttls)
PORTUS_SMTP_ENABLED是否启用SMTP邮件通知

部署示例

简单配置(无SSL,本地认证)

  1. 启动MySQL数据库:
bash
docker run \
  -d --restart=always --name portus-mysql \
  -e MYSQL_DATABASE=portus \
  -e MYSQL_ROOT_PASSWORD="$ROOTPASSWORD" \
  -e MYSQL_USER=portus \
  -e MYSQL_PASSWORD="$DBPASSWORD" \
  -v $DIR/portus:/var/lib/mysql \
  mysql
  1. 启动Portus:
bash
docker run \
  -d --restart=always --name portus \
  -e PORTUS_MACHINE_FQDN=$DOMAIN \
  --link=portus-mysql:portus-mysql \
  -e PORTUS_PRODUCTION_HOST=portus-mysql \
  -e PORTUS_PRODUCTION_DATABASE=portus \
  -e PORTUS_PRODUCTION_USERNAME=portus \
  -e PORTUS_PRODUCTION_PASSWORD="$DBPASSWORD" \
  -e PORTUS_GRAVATAR_ENABLED=true \
  -e PORTUS_CHECK_SSL_USAGE_ENABLED=false \
  -p 80:3000 \
  -e PORTUS_PASSWORD="$DBPASSWORD" \
  -e PORTUS_SECRET_KEY_BASE="$KEY" \
  sshipway/portus:latest 

完整配置(含SSL、认证、Webhooks)

  1. 启动Docker Registry:
bash
docker run -d -p 5000:5000 --restart=always --name registry \
  -e REGISTRY_LOG_LEVEL=warn \
  -v $DIR/data:/var/lib/registry \
  -e REGISTRY_STORAGE_DELETE_ENABLED=true \
  -v $DIR/certs:/certs \
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/server.crt \
  -e REGISTRY_HTTP_TLS_KEY=/certs/server.key  \
  -e REGISTRY_AUTH_TOKEN_REALM=https://docker.example.com:443/v2/token \
  -e REGISTRY_AUTH_TOKEN_SERVICE=docker.example.com:5000 \
  -e REGISTRY_AUTH_TOKEN_ISSUER=docker.example.com \
  -e REGISTRY_AUTH_TOKEN_ROOTCERTBUNDLE=/certs/server.crt \
  -e REGISTRY_NOTIFICATIONS_ENDPOINTS_NAME=portus \
  -e REGISTRY_NOTIFICATIONS_ENDPOINTS_URL=https://docker.example.com:443/v2/webhooks/events \
  -e REGISTRY_NOTIFICATIONS_ENDPOINTS_TIMEOUT=500 \
  -e REGISTRY_NOTIFICATIONS_ENDPOINTS_THRESHOLD=5 \
  -e REGISTRY_NOTIFICATIONS_ENDPOINTS_BACKOFF=1 \
  registry:2.1
  1. 启动MySQL数据库:
bash
docker run \
  -d --restart=always --name portus-mysql \
  -e MYSQL_DATABASE=portus \
  -e MYSQL_ROOT_PASSWORD=password \
  -e MYSQL_USER=portus \
  -e MYSQL_PASSWORD=dbpassword \
  -v $DIR/portus:/var/lib/mysql \
  mysql
  1. 启动Portus:
bash
docker run \
  -d --restart=always --name portus \
  -e PORTUS_MACHINE_FQDN=docker.example.com \
  --link=registry:registry \
  -e PORTUS_LDAP_ENABLED=true \
  -e PORTUS_LDAP_HOSTNAME=ldap.example.com \
  -e PORTUS_LDAP_PORT=389 \
  -e PORTUS_LDAP_METHOD=starttls \
  -e PORTUS_LDAP_BASE=ou=People,dc=example,dc=com \
  -e PORTUS_LDAP_UID=cn \
  -e PORTUS_LDAP_AUTHENTICATION_ENABLED=true \
  -e PORTUS_LDAP_AUTHENTICATION_BIND_DN=cn=portus,dc=example,dc=com \
  -e PORTUS_LDAP_AUTHENTICATION_PASSWORD=ldappassword \
  -e PORTUS_LDAP_GUESS_EMAIL_ENABLED=true \
  -e PORTUS_LDAP_GUESS_EMAIL_ATTR=mail \
  --link=portus-mysql:portus-mysql \
  -e PORTUS_PRODUCTION_HOST=portus-mysql \
  -e PORTUS_PRODUCTION_DATABASE=portus \
  -e PORTUS_PRODUCTION_USERNAME=portus \
  -e PORTUS_PRODUCTION_PASSWORD=dbpassword \
  -e PORTUS_GRAVATAR_ENABLED=true \
  -e PORTUS_EMAIL_FROM=docker@example.com \
  -e PORTUS_EMAIL_REPLY_TO=nobody@example.com \
  -e PORTUS_SMTP_ENABLED=true \
  -e PORTUS_SMTP_ADDRESS=mail.example.com \
  -e PORTUS_KEY_PATH=/certs/server.key \
  -v $DIR/certs:/certs \
  -e PORTUS_PASSWORD="password" \
  -e PORTUS_SECRET_KEY_BASE="apikeybase" \
  -e REGISTRY_USE_SSL=true \
  -e REGISTRY_NAME=Registry \
  -e REGISTRY_HOSTNAME=docker.example.com \
  -e REGISTRY_PORT=5000 \
  -e PORTUS_CHECK_SSL_USAGE_ENABLED=true  \
  -v $DIR/proxy:/etc/nginx/conf.d \
  sshipway/portus:2.0.0
  1. 启动Nginx(SSL代理):
bash
docker run -d --restart=always \
  --link=portus \
  --name=portus-ssl \
  -p 443:443  \
  -v $DIR/proxy:/etc/nginx/conf.d \
  -v $DIR/certs:/etc/nginx/certs \
  -e NGINX_CERT_FILE=/etc/nginx/certs/server.crt \
  -e NGINX_KEY_FILE=/etc/nginx/certs/server.key \
  -e NGINX_DOMAIN=docker.example.com \
  nginx

导出配置说明

  • 证书生成:若设置PORTUS_MACHINE_FQDN和PORTUS_KEY_PATH且密钥文件不存在,启动脚本将生成自签名证书,存储在PORTUS_KEY_PATH(证书为同路径下的.crt文件),默认路径为/certs,建议挂载为卷共享。

  • Nginx配置:/etc/nginx/conf.d为可导出卷,容器会生成portus.conf配置文件,适用于SSL卸载代理。挂载该路径到Nginx容器并共享/certs卷,可自动配置Nginx。示例portus.conf:

nginx
server {
  listen 443 ssl;
  ssl_certificate     certs/registry.crt;
  ssl_certificate_key certs/registry.key;
  location / {
    proxy_set_header Host docker.example.com;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header X-Forwarded-Host docker.example.com:443;
    proxy_pass http://portus:3000/;
    proxy_http_version 1.1;
    proxy_set_header Connection "upgrade";
    proxy_read_timeout 900s;
  }
}

许可信息

Portus基于Apache License 2.0许可,详见https://github.com/SUSE/Portus/blob/master/LICENSE%E3%80%82

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 portus 镜像标签

docker pull docker.xuanyuan.run/sshipway/portus:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

DockerHub 原生拉取命令

docker pull sshipway/portus:<标签>

更多 portus 镜像推荐

corpusops/portus logo

corpusops/portus

corpusops
暂无描述
265 次下载
7 年前更新
jordanjennings/portus logo

jordanjennings/portus

jordanjennings
Portus是Docker Registry v2的授权服务器和用户界面,提供细粒度权限控制、Web管理界面及自托管能力,支持用户/团队管理、镜像访问控制、LDAP认证、审计监控等功能,适用于私有Docker镜像仓库管理。
50万+ 次下载
8 年前更新
opensuse/portus logo

opensuse/portus

opensuse
Docker Registry (v2) 的授权服务和前端
97 次收藏1000万+ 次下载
7 年前更新
cvtjnii/portus logo

cvtjnii/portus

cvtjnii
https://github.com/SUSE/Portus
10万+ 次下载
9 年前更新
goblain/portus logo

goblain/portus

goblain
暂无描述
100万+ 次下载
9 年前更新
axizdkr/portus logo

axizdkr/portus

axizdkr
Portus 2.5.0容器的可正常运行版本,修复了官方openSUSE/portus:2.5镜像无法启动的问题,提供Docker Registry的前端管理与权限控制功能。
5万+ 次下载
6 年前更新

查看更多 portus 相关镜像

轩辕镜像配置手册

按平台快速找到配置文档

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

iKuai 镜像加速

宝塔面板

一键配置镜像源

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

一键安装

一键安装 Docker

Linux Docker 一键安装

需要其他帮助?请查看我们的 常见问题 Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

免费版与专业版区别

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

错误码

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 请求频率

其他报错

DNS 超时

DNS 解析 · 网络超时

TLS 证书失败

no matching manifest(架构)

账号

失败是否计费

manifest · blob · 计费

申请开发票(企业 / 个人)

企业 · 个人 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
sshipway/portus
教程轩辕镜像功能与使用教程
价格查看流量套餐与价格
热门查看热门 Docker 镜像推荐
博客Docker 镜像公告与技术博客
官方公众号:源码跳动|官方技术交流群:51517718
官方公众号:源码跳动|官方技术交流群:|问题咨询请:提交工单
商务合作:点击复制邮箱
©2024-2026 源码跳动
商务合作:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.