社区主页 文章详情

将ubuntu设置为NAS——6. 私人网盘nextcloud安装(下)(docker下安装nextcloud)

杨某人 11-09 17:18 + 关注

前言的前言

想通过本平台记录一些折腾小主机的过程,同时方便自己查阅,还能赚点金币,于是就有了这个小系列。之前写了5篇

我目前的主机外壳采用蜗牛星际外壳,主板是暴风酷播云华擎主板J3455,电源是暴风酷播云的台达电源,硬盘是一块固态硬盘,3块1T的机械硬盘,原蜗牛星际背板拆除,电源与数据线直接接硬盘的方式。软件层面主要是用Kubuntu18.04系统(ubuntu其他风味版,和原版功能上没有太大区别),安装了Transmission-daemon用于下载,nextcloud用于网络硬盘,kvm作为虚拟机开软路由,还有其他一些简单功能,基本实现NAS的作用。后面我将慢慢分享其中的过程,作为小白,很多都是自己参考网上根据其他作者文章,再自己摸索实践出来,如有谬误,请各位指正,大家共同学习。后面涉及的命令行都是在ubuntu终端(不要问我终端是什么 )中输入,请大家注意。

正式的前言

将ubuntu设置为NAS——5. docker与docker-compose的安装》上篇介绍了docker与docker-compose就是为了本篇利用docker安装nextcloud。还是强调一下,请不要使用windows下docker桌面版尝试,可以虚拟机安装Ubuntu后再安装docker进行试验。本文部分内容参考官方文档

什么值得上发文,部分代码中的空格可能在发布后被编辑吃掉,如出现这样问题,请检查空格是否有遗漏

1、 docker安装nextcloud

简单介绍一下,其实不需要使用此方法。重点看 2、docker-compose安装nextcloud。

docker run -d -v nextcloud:/var/www/html nextcloud

-d :后台安装方式

-v nextcloud:/var/www/html :将docker内 /var/www/html 目录挂载到 Ubuntu主机根目录文件目录 nextcloud

最后nextcloud 是指明docker下载安装的镜像为nextcloud

这里是docker安装nextcloud并设置了主机挂载目录,它需要运行的php环境也在nextcloud镜像内设置好,但不包括数据库,还要安装MySQL / MariaDB,当然还有其他数据库可选,在nextcloud设置界面可选(SQLite默认数据库不用设置,但性能可能有问题),这里举了MySQL / MariaDB例子。

docker run -d -v db:/var/lib/mysql mariadb

然后进入docker内的数据库进行设置,进入不同容器并打开各容器的终端的命令如下

docker exec -it CONTAINER_ID bash

其中CONTAINER_ID对应不通过容器的ID,可以通过docker ps 查询。进入容器后操作与普通的Ubuntu终端是一样的。具体数据库设置,详见将ubuntu设置为NAS——3. 私人网盘nextcloud安装(上)。本小节不是重点就不多介绍了。

2、docker-compose安装nextcloud

2.1 docker-compose.yml文件

用docker-compose安装,可以批量docker安装nextcloud,mariadb,并同时设置文件夹挂载位置,关联数据库名称和密码,非常便捷好用。只要明白相关设置的方法和意思就能自行设置了,下面结合官方的docker-compose文件代码简单解释相关的意思。

官方文档内,相关docker-compose文件(仅介绍,不直接用)

version: '2'

#docker-compose模版文件格式,有1,2,3等,1逐渐弃用,这里用2,具体参看https://docs.docker.com/compose/compose-file/


volumes:

#卷挂载路径设置。可以设置宿主机路径,(主机路径:容器路径)将容器存储挂载到主机路径存储


nextcloud:

#主机路径为nextcloud,没有则自动创建

db:

#主机路径为db,没有则自动创建


services:

db:

image: mariadb

#指定镜像mariadb,没有则自动pull

command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW

#覆盖容器启动后默认执行的命令。

restart: always

#每次运行docker-compose,都重启db容器

volumes:

- db:/var/lib/mysql

#容器内路径文件/var/lib/mysql挂载到外部主机路径文件目录db

environment:

#设置环境变量

- MYSQL_ROOT_PASSWORD=

#设置数据库mysql的root密码

- MYSQL_PASSWORD=

#设置数据库mysql的密码

- MYSQL_DATABASE=nextcloud

#设置数据库mysql的数据表nextcloud

- MYSQL_USER=nextcloud

#设置数据库mysql的用户名nextcloud


app:

image: nextcloud

#指定镜像nextcloud,没有则自动pull

ports:

#端口设置

- 8080:80

#设置主机与容器的端口映射

links:

#链接到其它服务中的容器

- db

#链接到db数据库容器

volumes:

- nextcloud:/var/www/html

#容器内路径文件/var/www/html挂载到外部主机路径文件nextcloud

restart: always

#每次运行docker-compose,都重启nextcloud容器

将上面的代码,删掉#相关解释的内容给,MYSQL_ROOT_PASSWORD 和 MYSQL_PASSWORD设置相关的密码,另存为名为docker-compose.yml的文件,存放在Ubuntu的文件夹内,然后在Ubuntu终端进入到存放文件夹,再输入命令

docker-compose up -d

上面的设置相对还是简单,但还缺少nextcloud关联mariadb数据库的设置,需要在首次进入nextcloud界面进行设置,还是不够简便,下面在重点介绍我目前在用的

version: '2'

services:

nextcloud-db:

image: mariadb

container_name: nextcloud-db

command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW

volumes:

- /docker/nextcloud/db:/var/lib/mysql

environment:

- MYSQL_ROOT_PASSWORD=改成你自己定义的数据库root密码

- MYSQL_PASSWORD=改成你自己定义的数据库密码

- MYSQL_DATABASE=nextcloud

- MYSQL_USER=nextcloud

restart: always


nextcloud:

image: nextcloud

container_name: nextcloud-web

ports:

- 8888:80

environment:

- UID=1000

- GID=1000

- UPLOAD_MAX_SIZE=5G

- APC_SHM_SIZE=128M

- OPCACHE_MEM_SIZE=128

- CRON_PERIOD=15m

- TZ=Aisa/Shanghai

- NEXTCLOUD_ADMIN_USER=改成你的nextcloud管理员账户

- NEXTCLOUD_ADMIN_PASSWORD=改成你要设置的nextcloud管理密码

- NEXTCLOUD_TRUSTED_DOMAINS="*.*.*.*"

- MYSQL_DATABASE=nextcloud

- MYSQL_USER=nextcloud

- MYSQL_PASSWORD=改成你需要的数据库密码,与上面设置的一样

- MYSQL_HOST=nextcloud-db

volumes:

- /docker/nextcloud:/var/www/html

restart: always


在使用docker-compose时候,大家务必关注-和它后面的空格及各符号前面空格,它对文件格式校验比较严格,缺少这2个符号或者多了,都有可能出错或者无法运行。请注意上面文件还出现的汉字,请改成你自己定义的名称,还有名称,如果你已经理解了,可以自行修改。其中 UPLOAD_MAX_SIZE=5G,设置最大单个文件上传大小限制在5G,您可以自行设置。APC_SHM_SIZE,OPCACHE_MEM_SIZE是关于网页缓存设置,如果网页打开卡,可以选择设置大一点,不过这个默认值应该是足够大了。

直接在Ubuntu主机上,大家可以浏览器查看代码,新建docker-compose.yml文件,复制代码保存。当然还有更简单的,就是开启Ubuntu的SSH服务,利用WinSCP远程登入,端口选择22,地址填Ubuntu主机地址,然后就可以在自己主力PC编辑好docker-compose.yml文件,然后用WinSCP上传到Ubuntu主机。主机PC上也可以使用PUTTY软件,远程SSH,就能用终端的方式远程操作Ubuntu。

至于如何开启SSH,这个比较简单,大家可以百度,我后续也会再介绍分享。

远程上传docker-compose.yml文件远程上传docker-compose.yml文件

我是在自己win10电脑上,编辑好docker-compose.yml文件,上传到Ubuntu主机的桌面位置,大家可以自行选择文件位置,注意选择当前Ubuntu用户权限的文件夹,不要传到root用户文件夹,可能会有权限问题,传不进去。

2.2 docker-compose安装

我是用PUTTY远程进入Ubuntu主机,也可以直接在Ubuntu终端输入命令

cd /home/yang/桌面 #进入docker-compose.yml文件目录

开始安装吧,-d为后台安装方式,不加-d,整个安装过程会全部展示,比较乱。如果是为检查错误,可以不加。

不加的话,可以用ctrl+c退出安装过程。

docker-compose up -d

开始安装开始安装

之前有值友反应docker下载镜像会比较慢,目前我自己用电信200M宽带,整个下载安装过程花费36分钟,部分文件下载速度比较慢,但这个整体时间其实可能接受,比起snap安装方式nextcloud(估计10个小时),好多了。如果你自己有梯子,估计速度会更好。

安装完成安装完成

安装完成后,等待2-3分钟后,开始尝试登陆,地址是Ubuntu主机地址,端口是docker-compose.yml设置的8888,显示界面没有数据库设置与选择了,直接输入自己设置的nextcloud网盘管理员账户和密码登陆,大概等1-2分钟自动配置,就能看到欢迎界面了。

尝试登陆尝试登陆

相关文件其实是挂载在Ubuntu主机根目录docker文件夹下,您也可以发现这个文件夹是在docker-compose安装nextcloud过程中新出现的。相关存储文件目录和数据库目录,如果您要备份nextcloud数据,请重点关注这2个目录,为了安全默认对应用户是www-data。

将ubuntu设置为NAS——6. 私人网盘nextcloud安装(下)(docker下安装nextcloud)

2.3 可能出现的问题

如果你的docker-compose.yml里面代码修改过,安装完成后设置过程中,发现nextcloud网页提示

Error while trying to create admin user: Failed to connect to the database: An exception occurred in driver: SQLSTATE[HY000] [2002] Connection refused

说明可能自动设置失败,提示无法连接数据库,或无法找到数据库,就是docker-compose.yml中下面的值

container_name: nextcloud-db

- MYSQL_HOST=nextcloud-db

设置有问题,请检查对应问题,或者手动设置。

将ubuntu设置为NAS——6. 私人网盘nextcloud安装(下)(docker下安装nextcloud)

总结

本篇重点介绍了docker安装nextcloud的过程,重点是docker-compose安装方式,请重点记住这个命令。

docker-compose up -d #安装并运行docker-compose.yml

docker-compose stop #停止docker-compose.yml对应的服务

利用了docker-compose,其实用设置好的docker-compose.yml就可以在其他地方或再重装系统后,简单的复制安装设置过程,大大简化了安装的难度,非常推荐。

参考

官方文档:https://github.com/nextcloud/docker




展开阅读全文

打开App,查看更多好文内容
全部评论 (26)
杨某人
2
11-10 18:34
TingSun: 这种文章建议还是发到 少数派这种 1

很好的建议,谢谢您,本意还是分享和赚点金币

杨某人
1
11-10 08:34
夜寻欢: 老铁出个Leanote的吧,我自己捣鼓了两天,成功了,刚得瑟一会,电脑重启完蛋了。。。活几天一忙就没心劲了,哎 1

以前用树莓派折腾过,但leanote开源版好像不维护了,使用中也有不方便感觉,后来也没持续用。值得买上也有人搭建的文章,您可以搜一下,也可以试试搭建最近开放的docker版为知笔记

杨某人
1
11-09 21:55
jinsongtry: ubuntu这个渣渣系统稳定性太差,推荐换centos7 1

目前运行情况还是比较稳定的,还是比较适合我这种小白的。之前用Ubuntu桌面版偶有有提示错误的问题,换了Kubuntu后就好了。

隔壁水电工
1
11-09 20:28

收藏退出,一气呵成[皱眉]

jinsongtry
2
11-09 18:52

ubuntu这个渣渣系统稳定性太差,推荐换centos7

打开App,查看更多好文和评论
猜你喜欢
编辑精选
53
860
26
你已经点过赞了
新浪微博 QQ空间 微信好友 豆瓣
当前为触屏版
热门搜索