目录
一、Container Station
二、MariaDB安装
三、phpMyAdmin安装及nextcloud对应数据库配置
(一)phpMyAdmin安装
(二)nextcloud对应数据库配置
四、Container Station中部署nextcloud
(一)拉取镜像
(二)启动容器
(三)初始化安装(我没装防火墙,所以,这一步我好像没涉及)
五、nextcloud连接数据库
一、Container Station
QNAP Container Station (软件容器工作站) 支持 LXD 与 Docker®、Kata 等轻量级虚拟技术。您可在 QNAP NAS 上运行完整的 Linux® 虚拟机,并由 Docker® Hub/LXD 映像文件服务器在线软件市场随选下载来自全球各地的应用程序。
具体的定义,大家可以去网上找,网络上的linux、宝塔等中docker的相关操作,应该是可以在威联通的Container Station中执行的。如果是命令行的形式,则可以用ssh登录到威联通,然后执行,操作是差不多的。
二、MariaDB安装
进入到App Center,点击“全部的应用程序”,搜索“MariaDB”,安装即可(我是安装的最新的5.1.0.3.255)。
按提示一步步安装好,端口一般都是3306。
三、phpMyAdmin安装及nextcloud对应数据库配置
(一)phpMyAdmin安装
操作同MariaDB安装
(二)nextcloud对应数据库配置
其实大部分的网友根据网络上的帖子(123步骤教程)安装Nextcloud时会遇到无法连接数据库问题,或者是被告知连接数据库名/或密码错误等问题,都在于使用phpMyAdmin创建数据库时配置的不对。
网络上几乎所有的教程,都在使用phpMyAdmin配置MariaDB数据库时,先创建数据库,后创建数据库用户名,并勾选了全部权限,正确的做法应该是:直接点击创建用户,并勾选创建与用户名相同的数据库,取消勾选全部权限。
进入phpMyAdmin管理界面,依次点击:账户→新增用户账户。
接着正常输入数据库【用户名】,【密码】,并勾选【创建与用户同名的数据库并授予所有权限】,最后点击右下角的【执行】。
这样数据库就配置完了。
四、Container Station中部署nextcloud
(一)拉取镜像
在终端执行以下命令,拉取 Nextcloud 镜像:
docker pull nextcloud
拉取到的 Nextcloud 镜像的 tag 是 latest,显示以下信息即表示拉取成功:
Using default tag: latest
latest: Pulling from library/nextcloud
bc51dd8edc1b: Pull complete
a3224e2c3a89: Pull complete
be7a066df88f: Pull complete
bfdf741d72a9: Pull complete
a9e612a5f04c: Pull complete
c026d8d0e8cb: Pull complete
d94096c4941c: Pull complete
5a16031a7587: Pull complete
0cf1daf9efc0: Pull complete
b202acb13a6c: Pull complete
907001e30880: Pull complete
2e4b329c80b2: Pull complete
cd1ec92e7164: Pull complete
8cba435f5ca6: Pull complete
e15a177658f6: Pull complete
9b26736059ce: Pull complete
53dbece8c17a: Pull complete
07158f924c2a: Pull complete
5ea6266119b8: Pull complete
e377a8cc542f: Pull complete
5662efc30cde: Pull complete
Digest: >sha256:fa863d16c10387f4bae140bdd38f5591aa4b88f1292593d>cffa501b9e1a76e58
Status: Downloaded newer image for nextcloud:latest
docker.io/library/nextcloud:latest
(二)启动容器
执行以下命令,启动 Nextcloud 容器(冒号左边的80是本机也就是nas的端口 可以自己改一个,右边的是docker对应的端口):
docker run -d --restart=always --name nextcloud -p 80:80 nextcloud
简单解释一下上述命令:
- docker run :启动一个容器
- d:后台运行容器
- --restart=always:Docker 重启的时候容器也会重启
- --name nextcloud:命名容器的 name 为 nextcloud,可以替代容器 id 使用
- -p 80:80:将容器的 80 端口映射到服务器的 80 端口
- nextcloud:要启动的镜像名称
更多参数可以参考:https://hub.docker.com/_/nextcloud/
执行之后会显示一个类似下面的长串字符,表示启动成功:
526306c7a591205f6d2cd417384571b358e738e3c8b52c16c1fc6f1893c8535f
也可以使用下面命令查看容器是否正常运行:
docker ps
如果显示以下内容,表明容器已经在运行中了:
CONTAINER ID | IMAGE | COMMAND | CREATED | STATUS | PORTS | NAMES |
619d34210996 | nextcloud | "/entrypoint.sh apac…" | 1 hours ago | Up 1 hours | 0.0.0.0:80->80/tcp | nextcloud |
(三)初始化安装(我没装防火墙,所以,这一步我好像没涉及)
需要注意的是,如果使用的阿里云或腾讯的服务器,要检查服务器的安全组是否开放了 80 端口,没有开放的需要开放一下。
如果使用的是本地虚拟机,需要执行以下命令开放 80 端口对外访问:
firewall-cmd --zone=public --add-port=80/tcp --permanent
然后更新防火墙规则:
firewall-cmd --reload
五、nextcloud连接数据库
在docker中按照网络上的教程,配置好nextcloud后,用威联通IP+nextcloud端口号访问,进入安装界面。
在“用户名”和“密码”中设置自己的初始管理员账号密码。
“数据库用户”、“数据库密码”、“数据库名”就填写第三步第二点中创建的数据库及用户相关信息(可以直接都设成“nextcloud”)。
重点来了,最后一行,网上有很多种不同的说法,经过尝试均失败。
后来经过尝试,成功的方法就是:威联通的IP地址+MariaDB的端口号。不用输入什么127.0.0.1,也不用输入什么172.17.0.1,或者什么桥接IP。快准狠的方法就是直接输入:
你的威联通IP地址:MariaDB的端口号。
注意:有的端口是3306、有的是3307,这要看你安装的MariaDB是什么版本的。具体查看方法如下图:进入套件中心,已安装套件,点击MariaDB就看到了。
注明相关涉及的内容出处:
1 .关于群晖在docker下安装NextCloud无法连接数据库问题的解决方法介绍
2. Docker方式部署Nextcloud
3. Container Station