
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
这是Xiid Commander的生产就绪型容器化部署,适用于Linux系统,支持AMD64(x86_64)架构。该镜像提供了在Docker、Podman和Kubernetes等容器化环境中无缝运行Commander的方式。
注意:Commander必须使用持久化非网络存储。若使用临时存储,当容器/ pod及其关联存储被销毁重建时,整个Terniion环境将丢失且可能无法恢复。请阅读存储要求部分获取更多信息。
关于运行和链接多个Commander的信息,请参见完整的Xiid文档。
本快速开始中的说明适用于Commander在开发或概念验证(PoC)环境中的快速测试或本地部署评估。生产环境请参见生产部署部分。
bashdocker run -d -p 10466:10466 -e XIID_ACTIVATION_CODE=your_activation_code_here xiidcorporation/commander:latest
将your_activation_code_here替换为有效的Xiid Commander激活码。
配置Commander时,通过暴露的***端口(HTTPS)访问Commander门户。
如需进入容器进行测试/调试:
bashdocker run -it -e XIID_ACTIVATION_CODE=your_activation_code_here xiidcorporation/commander:latest /bin/bash
以独立容器运行Commander,将4.0.1替换为latest或特定版本号:
bashdocker run -d -p 10466:10466 -e XIID_ACTIVATION_CODE=your_activation_code_here xiidcorporation/commander:latest
容器将:
明确指定平台:
bash# AMD64/x86_64 docker run -d -p 10466:10466 --platform linux/amd64 -e XIID_ACTIVATION_CODE=your_activation_code_here xiidcorporation/commander:latest
Commander在本地加密数据库中存储配置,包括所有STLinks、映射和绑定、用户账户、路由及其他关键Terniion组件。生产环境需特别注意一致性,具体需持久化并定期备份/opt/Xiid和/etc/xdg/Xiid路径下的文件。
此外,Terniion部署的安全性取决于Commander部署。若将Commander及其门户(***端口)暴露于公网,将存在风险。至少在初始配置后,关闭公网对Commander的所有入站访问,通过STLink访问(我们提供https://hub.docker.com/r/xiidcorporation/stlink%EF%BC%89%E3%80%82
存储要求
确保Commander的存储非临时,若存储丢失,Commander将无法运行且整个Terniion环境丢失且可能无法恢复。此外,/etc/xdg/Xiid路径的存储不能是网络文件系统(NFS),例如Amazon EFS无效,这是Commander底层数据库引擎的要求。
AWS ECS任务定义示例
以下是Commander在EC2 ECS集群上使用EBS卷持久化存储的有效配置。确保对EBS卷进行频繁备份并启用保护,以防EC2实例终止时丢失卷及关联的Commander配置。
json{ "taskDefinitionArn": "<你的任务定义ARN>", "containerDefinitions": [ { "name": "Xiid-Commander", "image": "xiidcorporation/commander", "cpu": 2048, "memory": 8192, "memoryReservation": 8192, "portMappings": [ { "name": "commanderportal", "containerPort": 10466, "hostPort": 10466, "protocol": "tcp", "appProtocol": "http" } ], "essential": true, "environment": [ { "name": "XIID_ACTIVATION_CODE", "value": "<你的激活码>" } ], "environmentFiles": [], "mountPoints": [ { "sourceVolume": "OptComm", "containerPath": "/opt/Xiid", "readOnly": false }, { "sourceVolume": "XdgComm", "containerPath": "/etc/xdg/Xiid", "readOnly": false } ], "volumesFrom": [], "ulimits": [], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "/ecs/Xiid-Commander", "awslogs-create-group": "true", "awslogs-region": "us-west-2", "awslogs-stream-prefix": "ecs" }, "secretOptions": [] }, "systemControls": [] } ], "family": "Xiid-Commander", "executionRoleArn": "arn:aws:iam::<你的IAM账户ID>:role/ecsTaskExecutionRole", "networkMode": "bridge", "revision": 28, "volumes": [ { "name": "OptComm", "host": { "sourcePath": "/ecs-data/commander/opt-xiid" } }, { "name": "XdgComm", "host": { "sourcePath": "/ecs-data/commander/xdg-xiid" } } ], "status": "ACTIVE", "requiresAttributes": [ { "name": "com.amazonaws.ecs.capability.logging-driver.awslogs" }, { "name": "ecs.capability.execution-role-awslogs" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.19" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.21" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.18" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.29" } ], "placementConstraints": [], "compatibilities": [ "EC2" ], "requiresCompatibilities": [ "EC2" ], "cpu": "2048", "memory": "8192", "runtimePlatform": { "cpuArchitecture": "X86_64", "operatingSystemFamily": "LINUX" }, "registeredAt": "2026-03-27T05:23:22.166Z", "registeredBy": "arn:aws:iam::<你的IAM账户ID>:user/xiidalex", "enableFaultInjection": false, "tags": [] }
Kubernetes部署(EKS示例)
步骤1:部署Commander
使用持久化存储部署Commander。Commander必须运行并配置后,才能为STLink边车生成激活码。以下精简示例使用块存储支持的PersistentVolumeClaim(如AWS EBS via gp2存储类或任何提供块级存储的CSI驱动)。不要使用NFS存储(如Amazon EFS)用于/etc/xdg/Xiid路径,参见存储要求。
此外,对于此EKS示例,确保安装vpc-cni、coredns、kube-proxy、aws-ebs-csi-driver和eks-pod-identity-agent插件,且使用的x86节点组已附加AmazonEBSCSIDriverPolicy策略到节点组的IAM角色。
yamlapiVersion: v1 kind: PersistentVolumeClaim metadata: name: commander-opt-xiid spec: accessModes: - ReadWriteOnce storageClassName: gp2 # 替换为集群的块存储类 resources: requests: storage: 1Gi --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: commander-xdg-xiid spec: accessModes: - ReadWriteOnce storageClassName: gp2 # 替换为集群的块存储类 resources: requests: storage: 5Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: xiid-commander spec: replicas: 1 strategy: type: Recreate # 确保PVC在新pod启动前释放 selector: matchLabels: app: xiid-commander template: metadata: labels: app: xiid-commander spec: containers: - name: xiid-commander image: xiidcorporation/commander:latest startupProbe: tcpSocket: port: 10466 periodSeconds: 5 failureThreshold: 24 ports: - containerPort: 10466 protocol: TCP env: - name: XIID_ACTIVATION_CODE value: #<- 插入你的Commander激活码 volumeMounts: - name: opt-xiid mountPath: /opt/Xiid - name: xdg-xiid mountPath: /etc/xdg/Xiid volumes: - name: opt-xiid persistentVolumeClaim: claimName: commander-opt-xiid - name: xdg-xiid persistentVolumeClaim: claimName: commander-xdg-xiid --- apiVersion: v1 kind: Service metadata: name: xiid-commander spec: selector: app: xiid-commander ports: - port: 10466 targetPort: 10466 protocol: TCP type: LoadBalancer # 通过AWS NLB暴露Commander门户,仅用于初始配置,存在风险!
Commander运行后,获取负载均衡器的DNS名称:
bashkubectl get svc xiid-commander
通过https://<外部IP或DNS>:10466访问Commander门户完成初始配置并生成STLink激活码。
初始配置后,尽快应用步骤2删除Load*服务,切换为ClusterIP。此后仅通过STLink访问Commander以最小化暴露。**
步骤2:为Commander添加STLink边车
通过门户配置Commander后,为Commander自身生成STLink激活码(添加映射到Commander门户),然后更新步骤1的部署以包含STLink边车。这允许通过STLink安全访问Commander门户。添加边车后,配置绑定从客户端机器访问门户。确认绑定工作后,删除Load***服务切换为ClusterIP,此时仅通过STLink访问Commander,甚至可移除集群的所有公网访问。
STLink边车需要NET_ADMIN权限以绑定到127.0.0.0/8范围内的任何地址用于动态环回绑定。
yamlapiVersion: v1 kind: PersistentVolumeClaim metadata: name: commander-opt-xiid spec: accessModes: - ReadWriteOnce storageClassName: gp2 # 替换为集群的块存储类 resources: requests: storage: 1Gi --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: commander-xdg-xiid spec: accessModes: - ReadWriteOnce storageClassName: gp2 # 替换为集群的块存储类 resources: requests: storage: 5Gi --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: stlink-opt-xiid spec: accessModes: - ReadWriteOnce storageClassName: gp2 # 替换为集群的块存储类 resources: requests: storage: 1Gi --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: stlink-xdg-xiid spec: accessModes: - ReadWriteOnce storageClassName: gp2 # 替换为集群的块存储类 resources: requests: storage: 5Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: xiid-commander spec: replicas: 1 strategy: type: Recreate # 确保PVC在新pod启动前释放 selector: matchLabels: app: xiid-commander template: metadata: labels: app: xiid-commander spec: containers: - name: xiid-commander image: xiidcorporation/commander:latest startupProbe: tcpSocket: port: 10466 periodSeconds: 5 failureThreshold: 24 ports: - containerPort: 10466 protocol: TCP env: - name: XIID_ACTIVATION_CODE value: #<- 插入你的Commander激活码 volumeMounts: - name: opt-xiid mountPath: /opt/Xiid - name: xdg-xiid mountPath: /etc/xdg/Xiid - name: xiid-stlink image: xiidcorporation/stlink:latest securityContext: capabilities: add: - NET_ADMIN startupProbe: tcpSocket: port: 10479 periodSeconds: 5 failureThreshold: 12 env: - name: XIID_ACTIVATION_CODE value: #<- 插入Commander的STLink激活码(从Commander门户生成) volumeMounts: - name: stlink-opt-xiid mountPath: /opt/Xiid - name: stlink-xdg-xiid mountPath: /etc/xdg/Xiid volumes: - name: opt-xiid persistentVolumeClaim: claimName: commander-opt-xiid - name: xdg-xiid persistentVolumeClaim: claimName: commander-xdg-xiid - name: stlink-opt-xiid persistentVolumeClaim: claimName: stlink-opt-xiid - name: stlink-xdg-xiid persistentVolumeClaim: claimName: stlink-xdg-xiid --- apiVersion: v1 kind: Service metadata: name: xiid-commander spec: selector: app: xiid-commander ports: - port: 10466 targetPort: 10466 protocol: TCP type: ClusterIP # 现在仅通过STLink访问Commander
| 变量 | 是否必填 | 描述 |
|---|---|---|
XIID_ACTIVATION_CODE | 是 | 你的Xiid Commander激活码 |
调试或检查容器:
bashdocker run -it -e XIID_ACTIVATION_CODE=your_activation_code_here xiidcorporation/commander:latest /bin/bash
如需帮助:
此容器镜像包含Xiid Commander软件。使用该软件需要有效的激活码,并受Xiid许可条款约束。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务