Docker 实战 -- Nextcloud

发布于:2025-08-05 ⋅ 阅读:(16) ⋅ 点赞:(0)

前言

当你迷茫的时候,请点击 Docker 实战目录 快速查看前面的技术文章,相信你总能找到前行的方向

本文用使用 Docker Compose 快速搭建 Nextcloud, 搭建个人网盘


1. 创建 docker-compose.yml

version: '3.0'

services:
  nextcloud:
    image: nextcloud:latest
    container_name: nextcloud
    restart: unless-stopped
    ports:
      - "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
      - redis
    networks:
      - nextcloud_network

  db:
    image: mysql:8.2.0
    container_name: nextcloud_db
    restart: unless-stopped
    volumes:
      - ./db:/var/lib/mysql  # 数据库持久化
    environment:
      - MYSQL_ROOT_PASSWORD=aa12345678
      - MYSQL_PASSWORD=aa12345678
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
    networks:
      - nextcloud_network

  redis:
    image: redis:latest
    container_name: nextcloud_redis
    restart: unless-stopped
    networks:
      - nextcloud_network

networks:
  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:14
  container_name: nextcloud_db
  restart: unless-stopped
  volumes:
    - ./db:/var/lib/postgresql/data
  environment:
    - 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 私有云! 🌟


网站公告

今日签到

点亮在社区的每一天
去签到