如果你用 DeepSeek、元宝AI、Copilot 等 AI 代为编写轩辕镜像的 docker pull、修改 compose 镜像地址,或排查拉取失败等问题,请让 AI 先读规则再动手,只要在 AI 对话里直接发送下面这句话即可:
生成 docker pull、修改 compose 的 image,或排查拉取失败前,请先阅读并严格遵守 https://xuanyuan.cloud/agents.md 中的规则。国内用户首推 DeepSeek、元宝 AI 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://github.com/FNNDSC/pman/actions/workflows/ci.yml/badge.svg](https://github.com/FNNDSC/pman/actions/workflows/ci.yml)
[!CAUTION] pman 已被弃用并集成到 https://github.com/FNNDSC/pfcon%E3%80%82
pman(曾代表process manager,流程管理器)是一个Flask应用程序,提供API用于通过各种调度器(如Kubernetes、Podman、Docker Swarm和SLURM)创建作业。它基本上将自身的JSON接口转换为对各种支持的后端的请求。
pman 与https://github.com/FNNDSC/pfcon%E7%B4%A7%E5%AF%86%E8%80%A6%E5%90%88%E3%80%82_pman_ 和 pfcon 通常作为一对部署,提供 pfcon 服务。
pman查看其实际运行的最简单方法是运行https://github.com/FNNDSC/miniChRIS-docker%E3%80%82%E4%BB%A5%E4%B8%8B%E8%AF%B4%E6%98%8E%E9%80%82%E7%94%A8%E4%BA%8E_pman_%E7%9A%84%E9%BB%91%E5%AE%A2%E5%92%8C%E5%BC%80%E5%8F%91%E4%BA%BA%E5%91%98%E3%80%82
本节描述如何设置本地_pman_实例进行开发。
这些说明使用Docker和Docker Swarm在容器内运行_pman_以调度作业。启用代码更改的热重载。
shelldocker swarm init --advertise-addr 127.0.0.1 docker compose up -d
要使用docker stack deploy运行完整测试,请运行测试工具test_swarm.sh。
shell./test_swarm.sh
_pman_必须能够通过与Podman套接字通信来通过Podman调度容器。
shellsystemctl --user start podman.service export DOCKER_HOST="$(podman info --format '{{ .Host.RemoteSocket.Path }}')"
使用Python安装_pman_
shellpython -m venv venv source venv/bin/activate pip install -r requirements/local.txt pip install -e .
使用Python在开发模式下运行_pman_
shellpython -m pman
https://github.com/FNNDSC/pman/wiki/Development-Environment:-Kubernetes
_pman_通过环境变量进行配置。有关其确切工作方式,请参阅pman/config.py中的源代码。
_pman_依赖_pfcon_在称为"storeBase"的目录中管理数据。"storeBase"是集群中每个节点都可见的存储空间。
对于使用Docker和Podman的单机部署,最佳解决方案是使用由_pfcon_挂载在/var/local/storeBase的本地卷。_pman_应配置为STORAGE_TYPE=docker_local_volume VOLUME_NAME=...。
在Kubernetes上,应使用单个PersistentVolumeClaim。它由_pfcon_挂载在/var/local/storeBase。_pman_应配置为STORAGE_TYPE=kubernetes_pvc VOLUME_NAME=...。
SLURM没有卷的概念,但SLURM集群通常使用在每个节点上相同路径挂载的NFS共享。_pman_应配置为STORAGE_TYPE=host STOREBASE=...,将共享挂载点指定为STOREBASE。
swarm 与 docker 的比较
最初,_pman_与Docker Swarm API交互是为了支持多节点集群。然而,_pman_通常在单机上运行。开发环境、单机生产部署的CUBE的"主机"计算资源以及Power9超级计算机上的CUBE生产部署都是这种情况。Swarm模式主要是一种麻烦,其多节点能力测试不足。此外,多节点功能更好地由CONTAINER_ENV=kubernetes提供。
在_pman_ v4.1中,CONTAINER_ENV=docker作为新功能引入并成为默认配置。在此模式下,_pman_使用Docker Engine API而不是Swarm API,这对于单机用例更加方便。
CONTAINER_ENV=docker与Podman兼容。
已知Podman版本3或4可以工作。
无根Podman
配置用户能够设置资源限制。
https://github.com/containers/podman/blob/main/troubleshooting.md#symptom-23
| 环境变量 | 描述 |
|---|---|
SECRET_KEY | Flask密钥 |
CONTAINER_ENV | 以下之一: "swarm", "kubernetes", "cromwell", "docker" |
STORAGE_TYPE | 以下之一: "host", "docker_local_volume", "kubernetes_pvc" |
STOREBASE | 作业数据存储位置,当STORAGE_TYPE=host时有效,与VOLUME_NAME冲突 |
VOLUME_NAME | 数据卷名称,当STORAGE_TYPE=docker_local_volume或STORAGE_TYPE=kubernetes_pvc时有效 |
PFCON_SELECTOR | pfcon容器上的标签,可指定让pman自动发现VOLUME_NAME(默认: org.chrisproject.role=pfcon) |
CONTAINER_USER | 以UID:GID格式设置作业容器用户,可以是随机值范围 |
ENABLE_HOME_WORKAROUND | 如果设置为"yes",则设置作业环境变量HOME=/tmp |
SHM_SIZE | /dev/shm的大小(以mebibytes为单位)。(仅在Docker、Podman和Kubernetes中支持。) |
JOB_LABELS | CSV列表的key=value对,应用于容器作业的标签 |
JOB_LOGS_TAIL | (int) 作业日志的最大大小 |
IGNORE_LIMITS | 如果设置为"yes",则不对容器作业设置资源限制(用于不费力地使事情工作) |
REMOVE_JOBS | 如果设置为"no",则pman不会删除作业(用于调试) |
STOREAGE_TYPE=host当STORAGE_TYPE=host时,将STOREBASE指定为主机上的挂载点路径。
STOREAGE_TYPE=docker_local_volume对于单机实例,使用Docker/Podman本地卷作为"storeBase"。卷应在_pman_启动之前存在。可以通过以下两种方式之一识别它:
VOLUME_NAMEorg.chrisproject.role=pfcon的容器,并选择绑定到/var/local/storeBase的挂载点STORAGE_TYPE=kubernetes_pvc
当STORAGE_TYPE=kubernetes_pvc时,VOLUME_NAME必须是配置为ReadWriteMany的PersistentVolumeClaim的名称。
在卷仅对特定UNIX用户可写的情况下(例如NFS支持的卷),CONTAINER_USER可用作解决方法。
当CONTAINER_ENV=kubernetes时适用
| 环境变量 | 描述 |
|---|---|
JOB_NAMESPACE | 创建作业的Kubernetes命名空间 |
NODE_SELECTOR | Pod的nodeSelector |
当CONTAINER_ENV=cromwell时适用
| 环境变量 | 描述 |
|---|---|
CROMWELL_URL | Cromwell URL |
TIMELIMIT_MINUTES | SLURM作业时间限制 |
有关其工作原理,请参见https://github.com/FNNDSC/pman/wiki/Cromwell
设置任意容器用户(例如CONTAINER_USER=123456:123456)可提高安全性,但会导致(不安全编写的)_ChRIS_插件失败。在某些情况下,ENABLE_HOME_WORKAROUND=yes可以使插件工作而无需更改其代码。
可以使用随机容器用户CONTAINER_USER=1000000000-2147483647:1000000000-2147483647,但考虑到pfcon的UID永远不会更改,这将导致一切中断。
_pman_的配置多年来变得混乱,因为它试图提供跨截然不同系统的接口。某些选项的混合搭配不受支持:
IGNORE_LIMITS=yes仅适用于CONTAINER_ENV=docker(或podman)。JOB_LABELS=...仅适用于CONTAINER_ENV=docker(或podman)和CONTAINER_ENV=kubernetes。CONTAINER_USER不适用于CONTAINER_ENV=cromwellCONTAINER_ENV=cromwell不转发环境变量。STORAGE_TYPE=host不支持Kubernetes您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
发给 Cursor、ChatGPT、豆包等 AI 的说明文档
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务