当前位置:论坛首页 > Linux面板 > Linux面板教程

【Docker 模块】使用 Compose 搭建自己的 Nextcloud 私人网盘

发表在 Linux面板2022-7-7 16:05 [复制链接] 3 7054

Docker Compose 例子





    使用 Docker Compose 来搭建自己的 Nextcloud 私人网盘
  • 先建立 nextcloud 模板:
    Compose模板 --> 添加
    创建模板:nextcloud
    备注:my-nextcloud

    compose模板例子添加.png

    compose模板例子添加.png

    模板内容如下:
    1. version: '3'
    2. ##指定Compose 语法的格式版本

    3. services:
    4. ##定义服务

    5.   db_nextcloud:
    6.   ##定义服务的名称
    7.   
    8.     image: mariadb:10.7
    9.     ##定义 db_nextcloud 服务使用的镜像
    10.    
    11.     container_name: db_nextcloud
    12.     ##容器名,不设置将以项目名命名 如:098f6bcd4621d373cade4e832627b4f6-db_nextcloud-1
    13.    
    14.     restart: always
    15.     ##docker服务启动后自动启动容器
    16.    
    17.     ports:
    18.     ##定义映射端口
    19.    
    20.       - 3366:3306
    21.       ##将宿主机3366端口映射到容器的3306端口
    22.       
    23.     networks:
    24.     ##定义网络配置
    25.    
    26.       nextcloud_net: {}
    27.       ##容器使用 nextcloud_net 网络
    28.    
    29.     command: ["--transaction-isolation=READ-COMMITTED","--binlog-format=ROW","--innodb_read_only_compressed=off"]
    30.     ##覆盖容器镜像(即Dockerfile的CMD)声明的默认命令
    31.    
    32.     volumes:
    33.     ##定义存储卷,用于容器数据持久化
    34.    
    35.       - db_data:/var/lib/mysql            
    36.       ##将容器 /var/lib/mysql 目录映射到 db_data 存储卷
    37.       
    38.     environment:
    39.     ##定义容器中设置的环境变量
    40.    
    41.       - MYSQL_ROOT_PASSWORD=btnextcloud
    42.       - MYSQL_DATABASE=nextcloud
    43.       - MYSQL_USER=nextcloud
    44.       - MYSQL_PASSWORD=nextcloud
    45.       ##设置容器环境变量:设置必需的变量并且为root用户的密码,创建数据库、用户、密码。该用户对数据库有所有的权限

    46.   redis_nextcloud:
    47.   ##定义服务的名称
    48.   
    49.     image: redis:6.2.6
    50.     ##定义 redis_nextcloud 服务使用的镜像
    51.    
    52.     container_name: redis_nextcloud
    53.     ##容器名,不设置将以项目名命名
    54.    
    55.     restart: always
    56.     ##docker服务启动后自动启动容器
    57.    
    58.     networks:
    59.     ##定义网络配置
    60.    
    61.       nextcloud_net: {}
    62.       ##容器使用 nextcloud_net 网络
    63.    
    64.     command: ["--databases", "1"]
    65.     ##覆盖容器启动的默认命令
    66.    
    67.     volumes:
    68.     ##定义存储卷,用于容器数据持久化
    69.    
    70.       - redis_data:/data
    71.       ##将容器 /data 目录映射到 redis_data 存储卷

    72.   nextcloud:
    73.   ##定义服务的名称  
    74.   
    75.     image: nextcloud:latest
    76.     ##定义 nextcloud 服务使用的镜像
    77.    
    78.     container_name: nextcloud_server
    79.     ##容器名,不设置将以项目名命名
    80.    
    81.     restart: always
    82.     ##docker服务启动后自动启动容器

    83.     networks:
    84.     ##定义网络配置
    85.    
    86.       nextcloud_net: {}
    87.       ##容器使用 nextcloud_net 网络
    88.    
    89.     ports:
    90.     ##定义映射端口
    91.    
    92.       - 8001:80
    93.       ##将宿主机8001端口映射到容器的80端口
    94.       
    95.     volumes:
    96.     ##定义存储卷,用于容器数据持久化
    97.    
    98.       - nextcloud_data:/var/www/html
    99.       ##将容器 /var/www/html 目录映射到 nextcloud_data 存储卷
    100.       
    101.     environment:
    102.     ##定义容器中设置的环境变量
    103.    
    104.       - MYSQL_PASSWORD=nextcloud
    105.       ##使用 mariadb 数据库用户的密码
    106.       - MYSQL_DATABASE=nextcloud
    107.       ##使用 mariadb 数据库名称
    108.       - MYSQL_USER=nextcloud
    109.       ##使用 mariadb 数据库的用户名
    110.       - MYSQL_HOST=db_nextcloud
    111.       ##使用 mariadb 数据库服务器的主机名。这里是 mariadb 服务的名称
    112.       - REDIS_HOST=redis_nextcloud
    113.       ##使用 redis 数据库服务器的主机名。这里是 redis 服务的名称
    114.       - REDIS_HOST_PORT=6379
    115.       ##使用 redis 的端口
    116.       - NEXTCLOUD_ADMIN_USER=mynextcloud
    117.       ##设置 nextcloud 管理员用户的名称,使用这个用户名登录nextcloud
    118.       - NEXTCLOUD_ADMIN_PASSWORD=mynextcloud
    119.       ##设置 nextcloud 管理员用户的密码,使用这个密码登录nextcloud
    120.       - NEXTCLOUD_TRUSTED_DOMAINS= 127.0.0.1 localhost 192.168.247.138 docker-nextcloud.com
    121.       ##设置容器环境变量:为nextcloud配置信任的ip、域名,请更改成你的服务器ip或域名否则将无法访问
    122.       
    123.     depends_on:
    124.     ##设置顺序启动服务
    125.    
    126.       - db_nextcloud
    127.       - redis_nextcloud
    128.       ##先启动 db_nextcloud 、redis_nextcloud 服务,再启动 nextcloud 服务

    129. volumes:
    130. ##定义存储卷,用于容器数据持久化

    131.   nextcloud_data:
    132.   ##创建 nextcloud_data 存储卷:配置可为空,如果存储卷没有指定名称将以项目名命名,如:098f6bcd4621d373cade4e832627b4f6_nextcloud_data
    133.   
    134.   db_data:
    135.     name: "nextcloud-mariadb-data"
    136.     #创建 db_data 存储卷的配置并且存储卷名称为:nextcloud-mariadb-data
    137.    
    138.   redis_data:
    139.   ##创建 redis_data 存储卷:配置可为空,如果存储卷没有指定名称将以项目名命名  

    140. networks:
    141. ##定义网络配置,默认会为项目创建一个新的网络,可不配置

    142.   nextcloud_net:
    143.     name: "nextcloud_net"
    144.     ##创建 nextcloud_net 网络,并指定网络名称为:nextcloud_net,如果网络没有指定名称将以项目名命名,如:098f6bcd4621d373cade4e832627b4f6_default
    复制代码
    如果复制的无法使用,请下载 nextcloud.yaml 附件,然后使用记事本打开附件复制里面的全部内容添加
    nextcloud.yaml (4.75 KB, 下载次数: 4597)
  • 添加Compose项目:
    Compose --> 添加Compose项目
    Compose模板选择刚刚添加的:nextcloud

    添加compose项目1.png

    添加compose项目1.png

    添加后,自动拉取镜像

    添加compose项目2.png

    添加compose项目2.png

    添加 Compose项目完成

    添加compose项目6.png

    添加compose项目6.png

    也可在“容器”界面,看到 Compose项目的容器

    添加compose项目容器.png

    添加compose项目容器.png
  • 访问 Compose项目容器的 nextcloud
    在网站界面添加一个网站
    如:

    nextcloud建立网站.png

    nextcloud建立网站.png

    配置代理访问容器:
    目标URL:http://127.0.0.1:8001

    nextcloud网站反向代理.png

    nextcloud网站反向代理.png

    使用浏览器访问 nextcloud :http://docker-nextcloud.com/ 请更改成你的ip/域名
    这里的用户与密码是:mynextcloud  ,第一次登录需要登录两次。

    nextcloud界面.png

    nextcloud界面.png

    nextcloud界面1.png

    nextcloud界面1.png


    也可以直接访问 nextcloud 容器:http://192.168.247.138:8001 请更改成你的ip/域名,如无法访问,请在安全组界面开启 8001 端口


更多 Compose 指令使用方法,请查看Docker官方文档:
https://docs.docker.com/compose/compose-file

也可以参考 nextcloud 官方 Dockerfile 文件构建自己的nextcloud镜像:
https://github.com/nextcloud/doc ... 4/apache/Dockerfile
使用道具 举报 只看该作者 回复
发表于 2023-3-5 15:03:24 | 显示全部楼层
按照操作一步步进行,到了这一步后, 添加 Compose项目完成,为什么跟文章内不一样,容器列表是0

使用道具 举报 回复 支持 反对
发表于 2023-3-7 09:16:21 | 显示全部楼层
黑面包黑面包 发表于 2023-3-5 15:03
按照操作一步步进行,到了这一步后, 添加 Compose项目完成,为什么跟文章内不一样,容器列表是0

...

添加后,自动拉取镜像
有拉取镜像吗?镜像界面有相关镜像吗?
使用道具 举报 回复 支持 反对
发表于 2023-6-22 21:49:13 | 显示全部楼层
docker需要添加 加速器  ....
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

企业版年付运维跟进群

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急问题处理

论坛响应时间:10分钟

问题处理方式:1对1处理(优先)

工作时间:白班:9:00 - 18:00

工作时间:晚班:18:00 - 24:00

立即付费处理
快速回复 返回顶部 返回列表