Docker安装NextCloud

看到安装FileBrowser教程,我也试了试总感觉少了些什么,fileBrowser手机上没有app,如果其他人在手机上上传文件就很不方便,搜了一下发现nextcloud好像还行。文件存储在自己的硬盘里,支持自动同步、手动上传下载和分享,有网页,客户端也是全平台的,Windows上体验就和OneDrive一样,而且NextCloud还支持Webdev。

一、安装docker和docker-compose

首先需要安装docker和docker-compose,安装docker教程很多,可以自己搜索安装一下,下面直接介绍安装Docker Compose 。

安装Docker Compose 当前稳定版本命令:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.3.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

对docker-compose二进制文件应用可执行权限:

sudo chmod +x /usr/local/bin/docker-compose

查看docker-compose版本:

docker-compose --version

有输出显示docker-compose版本则安装成功。

二、安装NextCloud

NextCloud docker网页:NextCloud

这里我们使用 docker-compose 来运行此镜像。

在任意路径创建一个名为docker-compose.yml的文件:

sudo apt update   #更新软件源
sudo apt install vim   #安装vim
vi docker-compose.yml   #创建docker-compose.yml文件

(vi里开始是不能修改的,按 i键是开启编辑,保存并退出是先按ESC键,然后输入:wq ,就保存了;不保存退出是先按ESC键,然后输入:q! 。)

sudo apt update   #更新软件源
sudo apt install nano   #安装nano
nano docker-compose.yml   #创建docker-compose.yml文件

(nano中,按ctrl+o键,再按一下回车键,是保存;按ctrl+z键是退出)

这里docker-compose.yml文件里的“MYSQL_ROOT_PASSWORD”、“MYSQL_PASSWORD”需要自己填写好密码,还有映射出来的路径和端口号。

注意:在mariadb容器的command上添加上 --innodb-read-only-compressed=OFF ,不然后面网页install会出现错误。

在docker-compose.yml文件中粘贴以下内容:

version: '2'
​
volumes:
  nextcloud:
  db:
​
services:
  db:
    image: mariadb
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-read-only-compressed=OFF
    volumes:
      - /路径/db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=设置密码
      - MYSQL_PASSWORD=设置密码
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
​
  app:
    image: nextcloud
    restart: always
    ports:
      - 8080:80
    links:
      - db
    volumes:
      - /路径/nextcloud:/var/www/html
    environment:
      - MYSQL_PASSWORD=设置密码 
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db

Docker安装NextCloud

保存并退出docker-compose.yml,再使用命令docker-compose up就可以拉取镜像并生成容器,自动运行。

Docker安装NextCloud

等待一段时间,我们就可以打开浏览器访问http://IP:8080/来进行接下来的操作。

Docker安装NextCloud

输入自己想要设置的用户名和密码,点击 “ install ” ,有些人到这里就结束了,可以直接正常使用。


因为我挂载的是NTFS格式的硬盘,所以这里会出现错误提示:

错误

  • 您的数据目录可被其他用户读取

    请更改权限为 0770 以避免其他用户查看目录。

Docker安装NextCloud

这里我们只需要修改一下nextcloud容器里的config/config.php文件就可以解决,因为config文件夹已经被我们映射出来了,所以我们不用进入nextcloud容器里修改。

进入刚刚映射出来的 /路径/nextcloud/config/ ,将'check_data_directory_permissions' => false,添加到config.php文件里。

Docker安装NextCloud

修改完成,重新打开nextcloud网页,就会自动进入nextcloud仪表盘。

各种客户端官方下载:官方下载


外部访问

没有固定IP,我使用的Frp内网穿透,将内网IP映射到服务器IP端口,外网打开网页直接使用,以及使用的NextCloud 安卓客户端,填入映射的服务器IP和端口也没有问题;但如果填入的是域名,app会提示隧道未加密,不能连接,我们就需要给域名申请SSL证书。

遇到的其他错误

1、不能写入

开始我没添加--innodb-read-only-compressed=OFF就输入用户名和密码,点击Install,会看到一个错误:

Error while trying to initialise the database: An exception occurred while executing a query: SQLSTATE[HY000]: General error: 4047 InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE.

Docker安装NextCloud

我们要进入mariadb控制台,键入以下命令并回车:

sudo docker exec -it mariadb bash   #进入mariadb容器,其中mariadb为这里我的容器名
cd /etc/mysql       #进入路径/etc/mysql
apt update          #更新软件源
apt install vim     #安装vim
vi my.cnf           #打开my.cnf

在my.cnf最后一行添加 innodb_read_only_compressed=0 ,保存并退出。

(vi里开始是不能修改的,按 i键是开启编辑,保存并退出是先按ESC键,然后输入:wq ,就保存了;不保存退出是先按ESC键,然后输入:q! 。)

Docker安装NextCloud

修改成功,我们重启一下NextCloud和mariadb容器,再到浏览器刷新一下,就可以install了。

2、域名不可访问

错误提示:

Docker安装NextCloud

修改映射出来的 /路径/nextcloud/config/config.php 文件,

添加域名或ip地址1 => 'IP地址:端口',或者 1 => '域名', ,例如0 => '192.168.3.3:8080',

Docker安装NextCloud

保存并退出,刷新一下网页就可以正常访问了。

-> 加入科技玩家交流群组:点击加入 注意:
1.文中二维码和链接可能带有邀请性质,请各位玩家自行抉择。
2.请勿通过链接填写qq号与密码、银行卡号与密码等个人隐私信息。
3.禁止纯拉人头,拉app注册等信息,发现必小黑屋。
4.同一种信息仅发一次,多发会被删除。
5.文章中源码或APP等,无法保证其绝对安全,需自行辨别。
6.文章关联方不想展示也可以微信站长“socutesheep”删除。
本文由 @ㅤㅤㅤㅤㅤ 发布。如若转载,请注明出处: 科技玩家 » Docker安装NextCloud

给TA买糖
共{{data.count}}人
人已买糖
教程玩家投稿精选文章

服务器(Windows系统)自建filebrowser网盘服务器超详细教程

2022-3-8 17:41:13

教程玩家投稿

Canot find module"XXX"脚本依赖之M加购有礼错误排查方法

2022-3-9 11:31:25

49 条回复 A文章作者 M管理员
贴心提醒
请认真对待作者付出,勿发表无意义言论,触发过滤规则的评论将无法提交,包含敏感词的评论会自动变成待审核状态哦。
  1. 萝卜头

    谢谢,分享学习了

  2. slimei

    瞅瞅瞅瞅,mark一手

  3. 84896150

    又学习到了,写的非常好

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索