Docker 实战 -- Nextcloud
文章目录
- 前言
- 1. 创建 `docker-compose.yml`
- 2. 启动 Nextcloud
- 3. 访问 Nextcloud
- 4. 配置优化(可选)
- 使用 PostgreSQL
- 使用 redis
- 添加 Cron 后台任务
- 5. 常用命令
- 6. 反向代理(Nginx/Apache)
前言
当你迷茫的时候,请点击 Docker 实战目录 快速查看前面的技术文章,相信你总能找到前行的方向
本文用使用 Docker Compose 快速搭建 Nextcloud, 搭建个人网盘
1. 创建 docker-compose.yml
version: '3.0'services:nextcloud:image: nextcloud:latestcontainer_name: nextcloudrestart: unless-stoppedports:- "6780:80" # 映射到宿主机的 6780 端口(避免与现有 80 端口冲突)volumes:- ./apps:/var/www/html/custom_apps # 自定义应用- ./config:/var/www/html/config # 配置文件- ./data:/var/www/html/data # 文件存储environment:- NEXTCLOUD_ADMIN_USER=admin # 初始管理员用户名- NEXTCLOUD_ADMIN_PASSWORD=12345678 # 初始管理员密码depends_on:- db- redisnetworks:- nextcloud_networkdb:image: mysql:8.2.0container_name: nextcloud_dbrestart: unless-stoppedvolumes:- ./db:/var/lib/mysql # 数据库持久化environment:- MYSQL_ROOT_PASSWORD=aa12345678- MYSQL_PASSWORD=aa12345678- MYSQL_DATABASE=nextcloud- MYSQL_USER=nextcloudnetworks:- nextcloud_networkredis:image: redis:latestcontainer_name: nextcloud_redisrestart: unless-stoppednetworks:- nextcloud_networknetworks:nextcloud_network:driver: bridge
2. 启动 Nextcloud
docker-compose up -d # 后台启动
3. 访问 Nextcloud
- 浏览器访问:
http://localhost:6780
- 初始登录:
- 用户名:
admin
- 密码:
12345678
(在docker-compose.yml
中设置)
- 用户名:
初始会有在页面上提示在数据库创建管理员账号, 数据库主机填docker 中的服务名, 在这里是 db
, 也可以用外置数据库,只要nextcloud能访问到
之后就可以愉快地使用你的私有网盘了
4. 配置优化(可选)
使用 PostgreSQL
修改 db
服务部分:
db:image: postgres:14container_name: nextcloud_dbrestart: unless-stoppedvolumes:- ./db:/var/lib/postgresql/dataenvironment:- POSTGRES_PASSWORD=dbpassword- POSTGRES_USER=nextcloud- POSTGRES_DB=nextcloud
使用 redis
在 config/config.php
中添加:
'memcache.local' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => ['host' => 'redis','port' => 6379,
],
添加 Cron 后台任务
在 nextcloud
服务中添加:
nextcloud:# ... 其他配置 ...environment:- NEXTCLOUD_CRONJOB_ENABLED=true # 启用 cron
5. 常用命令
命令 | 说明 |
---|---|
docker-compose logs -f | 查看日志 |
docker-compose down | 停止并删除容器 |
docker-compose pull | 更新镜像 |
6. 反向代理(Nginx/Apache)
如果需要通过域名访问(如 https://cloud.yourdomain.com
),可添加 Nginx 反向代理:
server {listen 80;server_name cloud.yourdomain.com;return 301 https://$server_name$request_uri;
}server {listen 443 ssl;server_name cloud.yourdomain.com;ssl_certificate /path/to/ssl.crt;ssl_certificate_key /path/to/ssl.key;location / {proxy_pass http://localhost:6780;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}
}
通过以上步骤,你可以快速搭建一个高可用、可扩展的 Nextcloud 私有云! 🌟