如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这段话即可:
请先阅读并遵守:https://xuanyuan.cloud/agents.md
未读文档前不要生成 pull 命令或排错方案。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
从wonderfall/nextcloud分支而来
本镜像为Nextcloud的Docker部署提供稳定支持,是wonderfall/nextcloud项目的分支版本(原项目已停止维护)。基于Alpine Linux构建,捆绑Nginx和PHP 7.1,支持通过环境变量自动安装,确保数据和应用持久化,适用于个人或小型团队搭建私有云存储服务。
出于安全考虑,即使使用最新版本的Nextcloud,也应定期更新容器,镜像会定期构建以保持底层依赖更新。
请为管理员账户设置强密码!
可使用主机或其他机器上的数据库实例,推荐使用外部数据库容器。建议使用MariaDB(可靠的数据库服务器),可通过Docker Hub的官方mariadb镜像创建数据库容器并链接到Nextcloud容器。也支持PostgreSQL。sqlite3仅推荐用于测试和极小实例,不建议生产环境使用。
适用于个人、家庭或小型团队搭建私有云存储服务,用于文件同步、共享和管理,支持多种客户端(Web、桌面、移动设备)访问,可集成第三方应用扩展功能。
基本部署(Docker命令)
拉取镜像并创建容器。/docker可替换为宿主机器上的任意路径。需修改MariaDB的MYSQL_ROOT_PASSWORD和MYSQL_PASSWORD值,也可调整Nextcloud的UID、GID及其他环境变量(见“环境变量”部分)。
bashdocker pull docker.xuanyuan.run/benyanke/nextcloud:10.0 && docker pull docker.xuanyuan.run/mariadb:10 docker run -d --name db_nextcloud \ -v /docker/nextcloud/db:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=supersecretpassword \ -e MYSQL_DATABASE=nextcloud -e MYSQL_USER=nextcloud \ -e MYSQL_PASSWORD=supersecretpassword \ docker.xuanyuan.run/mariadb:10 docker run -d --name nextcloud \ --link db_nextcloud:db_nextcloud \ -v /docker/nextcloud/data:/data \ -v /docker/nextcloud/config:/config \ -v /docker/nextcloud/apps:/apps2 \ -v /docker/nextcloud/themes:/nextcloud/themes \ -e UID=1000 -e GID=1000 \ -e UPLOAD_MAX_SIZE=10G \ -e APC_SHM_SIZE=128M \ -e OPCACHE_MEM_SIZE=128 \ -e CRON_PERIOD=15m \ -e TZ=Etc/UTC \ -e ADMIN_USER=mrrobot \ -e ADMIN_PASSWORD=supercomplicatedpassword \ -e DOMAIN=cloud.example.com \ -e DB_TYPE=mysql \ -e DB_NAME=nextcloud \ -e DB_USER=nextcloud \ -e DB_PASSWORD=supersecretpassword \ -e DB_HOST=db_nextcloud \ docker.xuanyuan.run/benyanke/nextcloud:10.0
无需强制设置ADMIN_USER和ADMIN_PASSWORD,若不提供,可通过浏览器配置管理员账户。
部署完成后需使用反向代理通过互联网访问容器(详见下文“反向代理”部分)。通过环境变量配置后,无网页设置页面。
ARM架构设备
需使用Alpine-ARM镜像(如orax/alpine-armhf:edge)自行构建。
配置建议
在管理面板中,应将定时任务从AJAX cron切换为cron(系统定时任务)。
更新方法
拉取新版本镜像,按“基本部署”步骤重建容器。由于使用外部卷,数据不会丢失。若Nextcloud执行完整升级,应用可能被禁用,需重新启用(12.0.x及以上版本升级后应用会自动启用)。
Docker Compose配置
推荐使用https://docs.docker.com/compose/管理容器。创建`docker-compose.yml`文件(根据需求调整),执行`docker-compose up -d nextcloud-db等待数据库启动(约15秒),再执行docker-compose up -d启动所有服务。后续只需执行docker-compose up -d`即可。
Docker Compose示例文件
请勿直接复制粘贴,需根据实际需求调整!
yamlversion: '2' networks: default: driver: bridge services: nextcloud: image: docker.xuanyuan.run/benyanke/nextcloud depends_on: - nextcloud-db # 使用MySQL时需添加 - solr # 使用Nextant时需添加 - redis # 使用Redis时需添加 environment: - UID=1000 - GID=1000 - UPLOAD_MAX_SIZE=10G - APC_SHM_SIZE=128M - OPCACHE_MEM_SIZE=128 - CRON_PERIOD=15m - TZ=Europe/Berlin - ADMIN_USER=admin # 不设置则通过浏览器配置 - ADMIN_PASSWORD=admin # 不设置则通过浏览器配置 - DOMAIN=localhost - DB_TYPE=mysql - DB_NAME=nextcloud - DB_USER=nextcloud - DB_PASSWORD=supersecretpassword - DB_HOST=nextcloud-db - APP_AUTO_UPDATE=1 volumes: - /docker/nextcloud/data:/data - /docker/nextcloud/config:/config - /docker/nextcloud/apps:/apps2 - /docker/nextcloud/themes:/nextcloud/themes # 使用MySQL时添加 nextcloud-db: image: docker.xuanyuan.run/mariadb:10 volumes: - /docker/nextcloud/db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=supersecretpassword - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_PASSWORD=supersecretpassword # 使用Nextant时添加 solr: image: docker.xuanyuan.run/solr:6-alpine container_name: solr volumes: - /docker/nextcloud/solr:/opt/solr/server/solr/mycores entrypoint: - docker-entrypoint.sh - solr-precreate - nextant # 使用Redis时添加 redis: image: docker.xuanyuan.run/redis:alpine container_name: redis volumes: - /docker/nextcloud/redis:/data
更新命令:docker-compose pull && docker-compose up -d
Redis可用于分布式缓存和文件锁缓存,配合APCu(本地缓存)提升Nextcloud性能。PHP Redis扩展已预装,只需部署Redis服务器(可通过上述docker-compose配置),并在config.php中添加以下配置:
php'memcache.distributed' => '\OC\Memcache\Redis', 'memcache.locking' => '\OC\Memcache\Redis', 'memcache.local' => '\OC\Memcache\APCu', 'redis' => array( 'host' => 'redis', 'port' => 6379, ),
需部署Solr服务器(上述docker-compose已提供示例)。安装Nextant应用后,在管理面板“附加设置”中,将“Solr Servlet地址”设为http://solr:8983/solr。
提供专用脚本,无需登录容器或设置权限,直接执行:docker exec -ti nextcloud occ 命令
推荐使用HTTPS访问Nextcloud(强烈建议:必须通过加密连接访问),可使用nginx、Haproxy、Caddy、h2o、Traefik等反向代理。容器已发送包含HSTS的响应头,无需重复添加。Let's Encrypt提供免费SSL/TLS证书。
推荐使用https://github.com/xataz/docker-reverse-nginx,基于最新nginx和OpenSSL,通过https://github.com/xenolf/lego(Let's Encrypt客户端)实现SSL/TLS自动化,无需手动配置。
配置步骤
yamlnextcloud: ... labels: - reverse.frontend.domain=cloud.domain.tld - reverse.backend.port=8888 - reverse.frontend.ssl=true - reverse.frontend.ssltype=ec384 - reverse.frontend.hsts=false - reverse.frontend.headers=false
yamlreverse: image: docker.xuanyuan.run/xataz/reverse-nginx container_name: reverse ports: - "80:8080" - "443:8443" environment: - EMAIL=admin@domain.tld volumes: - /docker/reverse/ssl:/nginx/ssl - /var/run/docker.sock:/var/run/docker.sock depends_on: - nextcloud
完成后即可通过HTTPS访问Nextcloud。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 benyanke/nextcloud 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: