
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
基于Debian的容器镜像,运行openssh-daemon,仅允许用户“borg”通过SSH公钥认证访问,使用borgbackup作为客户端。备份仓库、客户端SSH密钥和SSH主机密钥将存储在持久化存储中。每添加一个SSH密钥,会自动创建一个独立的borg仓库。
注意:本文档假设您了解SSH密钥的概念以及如何生成和使用它。如果不了解,建议从Arch Wiki开始学习。
以下是配置和运行此镜像的快速示例:
$ mkdir -p borg/sshkeys/clients
确保sshkey文件夹权限正确:
$ chown 1000:1000 borg/sshkeys
记住:文件名 = Borg仓库名称!
$ cp ~/.ssh/my_machine.pub borg/sshkeys/clients/my_machine
OpenSSH守护进程将在22/tcp端口暴露,因此您可能需要将其重定向到其他端口,如下例所示:
docker run -td \ -p 2222:22 \ --volume ./borg/sshkeys:/sshkeys \ --volume ./borg/backup:/backup \ nold360/borgserver:latest
BORG_SERVE_ARGS
用于设置内部使用的“borg serve”命令的特殊选项。
有关所有可用参数的文档,请参见:borgbackup.readthedocs.io
示例
docker run --rm -e BORG_SERVE_ARGS="--progress --debug" (...) nold360/borgserver
BORG_APPEND_ONLY
如果希望客户端只能追加数据而不能修剪仓库,请将此变量设置为**"yes"**。
BORG_ADMIN
当BORG_APPEND_ONLY激活时,没有客户端能够修剪其仓库。
由于您可能需要在某些时候清理仓库,可以将一个客户端声明为borg“管理员”。
此客户端将对所有客户端的仓库拥有完全访问权限!因此它可以执行添加、修剪等任何操作。
要将客户端声明为管理员,请将此变量设置为添加到/sshkeys/clients目录中的客户端/sshkey名称。
示例
docker run --rm -e BORG_APPEND_ONLY="yes" -e BORG_ADMIN="nolds_notebook" (...) nold360/borgserver
要修剪其他客户端的仓库,必须在客户端目录中指定仓库路径:
borg prune --keep-last 100 --keep-weekly 1 (...) borgserver:/clientA/clientA
PUID
用于设置容器内“borg”用户的用户ID。当容器需要以特定用户ID访问主机资源时,此参数很有用。
PGID
用于设置容器内“borg”组的组ID。当容器需要以特定组ID访问主机资源时,此参数很有用。
要使borgserver正常工作,需要两个持久化存储目录。
/sshkeys
此目录包含两个子目录:
/sshkeys/clients/
此处存放所有需要备份的borg客户端的SSH公钥。每个密钥必须是单独的文件,仅包含一行密钥内容。文件名将成为客户端连接所需的borg仓库名称。
这意味着每个客户端都有自己的仓库。因此,您可能希望使用客户端的主机名作为sshkey文件的名称。
隐藏文件和隐藏目录中的文件将被忽略!
例如:/sshkeys/clients/webserver.mydomain.com
然后客户端需要像这样初始化borg仓库:
webserver.mydomain.com ~$ borg init ssh://borg@borgserver-container/backup/webserver.mydomain.com/my_first_repo
!重要!:只有当此目录中至少存在一个ssh密钥文件时,容器才会启动SSH守护进程!
/sshkeys/host/
此目录将在首次启动时自动创建。run.sh脚本也会将SSH主机密钥复制到此处,以便客户端可以验证borgserver的SSH主机密钥。
/backup
borg将在此目录中写入所有客户端数据。最好从空目录开始使用。
以下是使用docker-compose运行borgserver的快速示例:
services: borgserver: image: nold360/borgserver volumes: - /backup:/backup - ./sshkeys:/sshkeys ports: - "2222:22" environment: BORG_SERVE_ARGS: "" BORG_APPEND_ONLY: "no" BORG_ADMIN: "" PUID: 1000 PGID: 1000
通过此配置(在borg客户端上),您可以轻松连接到borgserver:
Host backup Hostname my.docker.host Port 2222 User borg
现在可以像这样初始化borg仓库:
$ borg init backup:my_first_borg_repo
并创建您的第一个备份!
$ borg create backup:my_first_borg_repo::documents-2017-11-01 /home/user/MyImportentDocs
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务