文章目錄
- 前言
- 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 私有云! 🌟