
hoellen/nextcloud是一个基于Alpine Linux的Nextcloud容器镜像,集成了nginx和PHP 7.3环境,旨在提供轻量、安全且功能完善的私有云存储解决方案。该镜像支持自动安装配置,确保数据与应用持久化,并兼容多种数据库和缓存系统,适合个人或小型团队部署私有云服务。
注:除
daily标签外,其他标签每周构建一次。出于安全考虑,即使使用最新版本的Nextcloud,也应定期更新容器。
重要:管理员账户请使用强密码!
可使用主机或其他机器上的数据库实例,推荐使用外部数据库容器(如MariaDB)。以下是MariaDB配置示例,PostgreSQL也同样适用。
提示:可能需要根据硬件调整数据库设置以优化性能,参考Nextcloud文档。
拉取镜像并创建容器。以下示例中/docker为宿主机目录,可根据实际情况调整。请修改MYSQL_ROOT_PASSWORD和MYSQL_PASSWORD等敏感信息。
bash# 拉取镜像 docker pull hoellen/nextcloud && docker pull mariadb # 创建数据库容器 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 \ mariadb # 创建Nextcloud容器 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 \ hoellen/nextcloud
注:
ADMIN_USER和ADMIN_PASSWORD为可选参数,若不提供,可通过Web界面配置管理员账户。
建议使用docker-compose管理容器。创建docker-compose.yml文件如下(根据实际需求调整):
yamlversion: '2' networks: default: driver: bridge services: nextcloud: image: hoellen/nextcloud depends_on: - nextcloud-db # 使用MySQL时依赖 - 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 - DOMAIN=localhost - DB_TYPE=mysql - DB_NAME=nextcloud - DB_USER=nextcloud - DB_PASSWORD=supersecretpassword - DB_HOST=nextcloud-db volumes: - /docker/nextcloud/data:/data - /docker/nextcloud/config:/config - /docker/nextcloud/apps:/apps2 - /docker/nextcloud/themes:/nextcloud/themes # MySQL数据库配置 nextcloud-db: image: mariadb:10 volumes: - /docker/nextcloud/db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=supersecretpassword - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_PASSWORD=supersecretpassword # Redis缓存配置 redis: image: redis:alpine container_name: redis volumes: - /docker/nextcloud/redis:/data
部署命令:
bash# 启动数据库并等待15秒 docker-compose up -d nextcloud-db # 启动所有服务 docker-compose up -d # 更新服务 docker-compose pull && docker-compose up -d
Redis可用于分布式缓存和文件锁,配合APCu(本地缓存)提升性能。PHP Redis扩展已内置,只需部署Redis服务并在config.php中添加配置:
php'memcache.distributed' => '\OC\Memcache\Redis', 'memcache.locking' => '\OC\Memcache\Redis', 'memcache.local' => '\OC\Memcache\APCu', 'redis' => array( 'host' => 'redis', 'port' => 6379, ),
通过容器执行occ命令:
bashdocker exec -ti nextcloud occ 命令
支持nginx、Haproxy、Caddy、h2o、Traefik等反向代理。容器已发送包括HSTS在内的HTTP头,无需重复配置。强烈建议(必须)通过HTTPS访问Nextcloud,可使用Let's Encrypt获取免费SSL证书。
在管理员面板中,建议将定时任务从AJAX cron切换为cron(系统定时任务)。
拉取新版本镜像后,按部署步骤重新创建容器。由于使用外部数据卷,数据不会丢失,Nextcloud会自动处理数据库迁移。
以下是 hoellen/nextcloud 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务