如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本文档介绍基于https://hub.docker.com/_/nextcloud/构建的自定义Docker镜像。特别感谢https://nextcloud.com/开发团队的杰出工作!
为您所有数据提供安全的存储空间。从任何设备按您的方式访问和共享文件、日历、联系人、邮件等。
目前支持基于Apache的Nextcloud Docker镜像标签。
apache标签包含基础的Nextcloud安装及Apache Web服务器,设计为易于使用且能快速启动,也是latest标签和未指定具体类型的版本标签的默认选项。
您可选择以下不同功能版本:
apache:在官方Nextcloud Apache镜像基础上,添加推荐的PHP设置及每15分钟运行Nextcloud cron.php的推荐定时任务imap:在apache镜像基础上增加IMAP认证功能smb:在apache镜像基础上增加SAMBA认证功能preview:在apache镜像基础上增加基于Imagik的图片和视频文件预览功能(不包含Libre Office)full:在apache镜像基础上整合imap、smb和preview的所有功能本镜像设计用于微服务环境。建议创建卷或挂载本地文件夹存储Nextcloud的数据、配置和应用,否则删除容器时将丢失数据和配置。关于如何使用docker-compose、docker run及systemd运行Docker容器,可参考https://github.com/MiGoller/dc-systemd-template。
apache镜像包含Web服务器并暴露80端口,启动容器命令如下:
console$ docker run -d -p 8080:80 migoller/nextcloud
此时可通过http://localhost:8080/访问Nextcloud,但需连接现有MySQL服务器。
可在命令行挂载卷并设置环境变量:
console$ docker run -it --name <container_name> \ --link <your_MySql_containter>:db_nextcloud \ -v <local_path_to_nextcloud_storage_folder>:/var/www/html/data \ -v <local_path_to_nextcloud_config_folder>/config:/var/www/html/config \ -v <local_path_to_nextcloud_config_folder>/apps:/var/www/html/custom_apps \ -e NEXTCLOUD_ADMIN_USER=<your_nextcloud_admin_username> \ -e NEXTCLOUD_ADMIN_PASSWORD=<your_nextcloud_admin_password> \ -e MYSQL_DATABASE=<your_MySql_database_name> \ -e MYSQL_USER=<your_MySql_username> \ -e MYSQL_PASSWORD=<your_MySql_password> \ -e MYSQL_HOST=db_nextcloud \ -p 8080:80 \ migoller/nextcloud
如前所述,apache镜像包含Apache Web服务器,但不含MySQL或MariaDB等数据库管理系统。可通过docker-compose轻松创建、部署和运行Nextcloud栈。docker-compose cli用于管理多容器应用,将docker run cli中的选项移至docker-compose.yml文件便于复用,详见https://docs.docker.com/compose/overview/。建议在`env-files`中声明环境变量以便复用。示例文件及更多详情见docker-compose示例,确保为容器设置不同密码。
首先需创建符合本地需求的docker-compose.yml,可基于示例文件修改:
yamlversion: '2' services: db: image: docker.xuanyuan.run/mysql env_file: - MySQL.env volumes: - ./datadir:/var/lib/mysql app: image: docker.xuanyuan.run/migoller/nextcloud:apache env_file: - MySQL.env - Nextcloud.env volumes: - ./data:/var/www/html/data - ./config:/var/www/html/config - ./apps:/var/www/html/custom_apps depends_on: - db ports: - "8080:80"
调整卷的本地路径以适应系统,环境变量在env-files中定义,可在运行时供两个容器使用。
在docker-compose.yml所在路径执行以下命令启动栈:
console$ docker-compose up -d
停止栈同样简单:
console$ docker-compose down
许多用户需要Nextcloud的额外功能。若镜像未包含所需包,可基于此镜像构建自己的镜像。以FROM语句开始派生镜像,添加所需内容:
yamlFROM docker.xuanyuan.run/migoller/nextcloud RUN ...
https://github.com/nextcloud/docker/blob/master/.examples提供了添加定时任务、smb支持或imap认证等功能的示例。更多详情见https://github.com/nextcloud/docker/blob/master/.examples/dockerfiles/full/apache/Dockerfile。
Nextcloud镜像支持通过环境变量自动配置,可预配置首次运行安装页面的所有选项。启用自动配置需通过以下环境变量设置数据库连接,仅使用一种数据库类型!
官方Nextcloud Docker镜像的环境变量列表见https://github.com/nextcloud/docker#auto-configuration-via-environment-variables。
NEXTCLOUD_ADMIN_USER:设置Nextcloud管理员账户用户名NEXTCLOUD_ADMIN_PASSWORD:设置Nextcloud管理员账户的复杂密码MYSQL_USER:设置运行时访问数据库的MySQL用户名MYSQL_PASSWORD:设置MYSQL_USER账户的复杂密码MYSQL_HOST:设置远程MySQL服务器的主机名MYSQL_DATABASE:设置Nextcloud数据库名称MYSQL_ROOT_USER:设置MySQL服务器root用户账户名(通常为"root")MYSQL_ROOT_PASSWORD:设置MySQL的密码未来此自定义镜像将支持通过环境变量配置:
根据您的设置,有多种加密实现方式。推荐在Nextcloud前使用反向代理,如流行的https://github.com/jwilder/nginx-proxy和https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion容器,使用前请查阅相关文档。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 migoller/nextcloud 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: