
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://img.shields.io/docker/automated/fjacquet/crashplan-pro.svg](https://hub.docker.com/r/fjacquet/crashplan-pro/) https://images.microbadger.com/badges/image/fjacquet/crashplan-pro.svg](https://microbadger.com/images/fjacquet/crashplan-pro) https://travis-ci.org/fjacquet/docker-crashplan-pro.svg?branch=master](https://travis-ci.org/fjacquet/docker-crashplan-pro) https://img.shields.io/github/release/fjacquet/crashplan-pro.svg](https://github.com/fjacquet/crashplan-pro/releases/latest)
这是一个用于CrashPlan SMB的Docker容器。应用的GUI可通过现代Web浏览器(客户端无需安装或配置)或任何VNC客户端访问。
。详见数据卷部分。 |
| -p | 设置网络端口映射(将容器内部端口暴露给主机)。详见端口部分。 |
要自定义容器的某些属性,可通过-e参数传递以下环境变量(每个变量一个)。参数格式为<变量名>=<值>。
| 变量 | 描述 | 默认值 |
|---|---|---|
USER_ID | 应用运行的用户ID。详见用户/组ID以了解何时需要设置。 | 1000 |
GROUP_ID | 应用运行的组ID。详见用户/组ID以了解何时需要设置。 | 1000 |
SUP_GROUP_IDS | 应用的补充组ID列表,以逗号分隔。 | 未设置 |
UMASK | 控制新创建文件权限的掩码,值为八进制。默认未设置,使用022(新文件对所有人可读,仅所有者可写)。可参考在线计算器:[***] | 未设置 |
TZ | 容器的时区。也可通过映射/etc/localtime在主机和容器之间设置时区。 | Etc/UTC |
KEEP_APP_RUNNING | 设为1时,若应用崩溃或用户退出,将自动重启。 | 0 |
APP_NICENESS | 应用运行的优先级。值范围为-20(最高)到19(最低)。默认未设置,使用0。注意:负优先级需要额外权限,此时容器需使用--cap-add=SYS_NICE选项运行。 | 未设置 |
CLEAN_TMP_DIR | 设为1时,容器启动时删除/tmp目录下所有文件。 | 1 |
DISPLAY_WIDTH | 应用窗口的宽度(像素)。 | 1280 |
DISPLAY_HEIGHT | 应用窗口的高度(像素)。 | 768 |
SECURE_CONNECTION | 设为1时,使用加密连接访问应用GUI(通过浏览器或VNC客户端)。详见安全部分。 | 0 |
VNC_PASSWORD | 访问应用GUI所需的密码。详见VNC密码部分。 | 未设置 |
X11VNC_EXTRA_OPTS | 传递给容器内运行的x11vnc服务器的额外选项。警告:仅限高级用户使用。 | 未设置 |
ENABLE_CJK_FONT | 设为1时,安装开源字体文泉驿正黑,包含大量中日韩字符。 | 0 |
CRASHPLAN_SRV_MAX_MEM | CrashPlan引擎允许使用的最大内存。需添加后缀(不区分大小写):G、M或K。默认未设置时允许最大1024MB(1024M)。Crashplan建议1TB受保护数据需要1G内存。 | 未设置 |
以下是容器使用的数据卷。映射通过-v参数设置,格式为<主机目录>:<容器目录>[:权限]。
| 容器路径 | 权限 | 描述 |
|---|---|---|
/config | rw | 应用存储配置、日志和任何需要持久化的文件的位置。 |
/storage | ro | 包含主机上需要被应用访问的文件的位置。 |
以下是容器使用的端口。可通过-p参数映射到主机(每个端口一个映射),格式为<主机端口>:<容器端口>。容器内的端口不可更改,但可自由使用主机上的任何端口。
| 端口 | 主机映射 | 描述 |
|---|---|---|
| 5800 | 必须 | 通过Web界面访问应用GUI的端口。 |
| 5900 | 可选 | 通过VNC协议访问应用GUI的端口。若不使用VNC客户端则可选。 |
环境变量、卷映射和端口映射在创建容器时指定。以下步骤描述如何添加、删除或更新现有容器的参数:
docker stop crashplan-pro
docker rm crashplan-pro
docker run命令重新创建/启动容器,调整所需参数。注意:所有应用数据保存在容器的/config文件夹下,因此销毁和重新创建容器不会丢失数据(只要/config文件夹的映射保持不变)。
以下是可用于https://docs.docker.com/compose/overview/%E7%9A%84%60docker-compose.yml%60%E7%A4%BA%E4%BE%8B%E3%80%82%E8%AF%B7%E6%A0%B9%E6%8D%AE%E9%9C%80%E6%B1%82%E8%B0%83%E6%95%B4%EF%BC%8C%E7%A4%BA%E4%BE%8B%E4%BB%85%E5%8C%85%E5%90%AB%E5%BF%85%E8%A6%81%E7%9A%84%E7%BD%91%E7%BB%9C%E7%AB%AF%E5%8F%A3%E3%80%82
yamlversion: '3' services: crashplan-pro: build: . ports: - "5800:5800" volumes: - "/docker/appdata/crashplan-pro:/config:rw" - "$HOME:/storage:ro"
若容器运行的系统无法轻松更新Docker镜像,可按以下步骤操作:
docker pull docker.xuanyuan.run/fjacquet/crashplan-pro
docker stop crashplan-pro
docker rm crashplan-pro
docker run命令启动容器。使用数据卷(-v标志)时,主机和容器之间可能出现权限问题。例如,容器内的用户可能不存在于主机上,导致主机无法正确访问共享卷上的文件和文件夹。
为避免问题,可指定应用运行的用户。通过USER_ID和GROUP_ID环境变量将用户ID和组ID传递给容器。
要找到正确的ID,在主机上运行以下命令(使用拥有主机数据卷的用户):
id <用户名>
输出示例:
uid=1000(myuser) gid=1000(myuser) groups=1000(myuser),4(adm),24(cdrom),27(sudo),46(plugdev),113(lpadmin)
uid(用户ID)和gid(组ID)即为应传递给容器的值。
假设容器端口映射到主机的相同端口,应用的图形界面可通过以下方式访问:
http://<主机IP地址>:5800
<主机IP地址>:5900
默认情况下,应用GUI的访问通过未加密连接(HTTP或VNC)进行。可通过SECURE_CONNECTION环境变量启用安全连接。详见环境变量部分。
启用后,通过浏览器访问时使用HTTPS连接,所有HTTP访问自动重定向到HTTPS。使用VNC客户端时,VNC连接通过SSL进行(注意:少数VNC客户端支持此方法,如[SSVNC])。
容器需要以下证书文件。默认情况下,若缺失则生成并使用自签名证书。所有文件均为PEM编码的x509证书。
| 容器路径 | 用途 | 内容 |
|---|---|---|
/config/certs/vnc-server.pem | VNC连接加密 | VNC服务器的私钥和证书,包含任何根证书和中间证书。 |
/config/certs/web-privkey.pem | HTTPS连接加密 | Web服务器的私钥。 |
/config/certs/web-fullchain.pem | HTTPS连接加密 | Web服务器的证书,包含任何根证书和中间证书。 |
注意:为避免浏览器或VNC客户端出现证书有效性警告/错误,请确保提供自己的有效证书。证书文件会被监控,检测到更改时相关守护进程会自动重启。
可通过两种方式设置密码以限制应用访问:
VNC_PASSWORD环境变量。/config卷的根目录创建.vncpass_clear文件,包含明文密码。容器启动时,文件内容会被混淆并移动到.vncpass。VNC密码的安全级别取决于两点:通信通道类型(加密/未加密)和主机访问的安全性。使用VNC密码时,强烈建议启用安全连接以防止密码在未加密通道中明文传输。
注意:密码限制为8个字符,这来自Remote Framebuffer协议https://tools.ietf.org/html/rfc6143%EF%BC%88%E8%A7%81https://tools.ietf.org/html/rfc6143#section-7.2.2%EF%BC%89%E3%80%82%E8%B6%85%E8%BF%87%E9%99%90%E5%88%B6%E7%9A%84%E5%AD%97%E7%AC%A6%E5%B0%86%E8%A2%AB%E5%BF%BD%E7%95%A5%E3%80%82
若此容器替换CrashPlan安装(来自Linux、Windows、MAC或其他Docker容器),可接管现有备份以避免重新上传所有数据。请仔细阅读[官方文档]。
步骤摘要:
CrashPlan for Home [正在停用],用户可选择将账户迁移到CrashPlan PRO(又名CrashPlan for Small Business)。因此,此容器是这些用户的理想选择。
迁移步骤:
fjacquet/crashplan Docker容器提供:
fjacquet/crashplan容器使用的配置目录(即映射到/config的主机目录)。/config文件夹映射到fjacquet/crashplan容器使用的相同主机目录。若CrashPlan在大型备份时意外崩溃,尝试增加CrashPlan允许使用的最大内存:
CRASHPLAN_SRV_MAX_MEM环境变量。详见环境变量部分。若CrashPlan超过inotify的最大监视限制,实时文件监视无法正常工作,需在主机上增加inotify监视限制。详见CrashPlan的[Linux实时文件监视错误]文章。
若容器内的/storage文件夹为空:
docker run命令的-v参数)。详见使用方法部分。USER_ID和GROUP_ID环境变量定义)兼容。详见用户/组ID部分。注意:若以root用户(USER_ID=0和GROUP_ID=0)运行应用使文件可见,则确认存在权限问题。
若设备状态卡在等待连接,清除CrashPlan的缓存可帮助解决问题:
cache目录的所有内容。例如,若容器的/config文件夹映射到主机的/docker/appdata/crashplan-pro,在主机上运行以下命令清除缓存:rm -rf /docker/appdata/crashplan-pro/cache/*
若CrashPlan无法恢复文件,确保恢复文件的位置具有写权限。典型安装中,备份数据位于/storage文件夹下,该文件夹通常以只读权限映射到主机。因此,无法恢复文件到/storage。解决方案是临时将卷权限改为读写。例如,若/storage映射到主机的$HOME,需删除容器并重新创建,将-v $HOME:/storage:ro替换为-v $HOME:/storage:rw。
以下是需添加到NGINX配置中的内容,以反向代理到此容器。反向代理服务器可基于主机名或URL路径路由HTTP请求。
在此场景中,每个主机名路由到不同的应用/容器。例如,反向代理服务器与容器运行在同一机器上,服务器将所有发送到crashplan-pro.domain.tld的HTTP请求代理到容器127.0.0.1:5800。
添加到NGINX配置的相关元素:
map $http_upgrade $connection_upgrade { default upgrade; '' close; } upstream docker-crashplan-pro { # 若反向代理服务器未与Docker容器运行在同一机器上,此处使用Docker主机的IP。 # 确保根据容器的5800端口在主机上的映射调整端口。 server 127.0.0.1:5800; } server { [...] server_name crashplan-pro.domain.tld; location / { proxy_pass http://crashplan-pro; } location /websockify { proxy_pass http://crashplan-pro; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_read_timeout 86400; } }
在此场景中,主机名相同,但不同URL路径用于路由到不同应用/容器。例如,反向代理服务器与容器运行在同一机器上,服务器将所有server.domain.tld/crashplan-pro的HTTP请求代理到容器127.0.0.1:5800。
添加到NGINX配置的相关元素:
map $http_upgrade $connection_upgrade { default upgrade; '' close; } upstream docker-crashplan-pro { # 若反向代理服务器未与Docker容器运行在同一机器上,此处使用Docker主机的IP。 # 确保根据容器的5800端口在主机上的映射调整端口。 server 127.0.0.1:5800; } server { [...] location = /crashplan-pro {return 301 $scheme://$http_host/crashplan-pro/;} location /crashplan-pro/ { proxy_pass http://crashplan-pro/; location /crashplan-pro/websockify { proxy_pass http://crashplan-pro/websockify/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_read_timeout 86400; } } }
遇到容器问题或有疑问?请[创建新问题]。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务