docker搭建nextcloud
首先遭遇了以下错误的或者有其他错误的可以看看此贴
Error while trying to create admin user: Failed to connect to the database: An exception occurred in driver: SQLSTATE[HY000] [1130] Host '172.18.0.2' is not allowed to connect to this MariaDB server
XXXXXXXXX refused connection
环境:centos7
首先安装启动docker:
yum install docker
systemctl start docker
注:本人未使用docker-compose,不过不使用也不影响搭建
拉取镜像:
docker pull nextcloud
创建容器:
docker run -d -p 9000:80 nextcloud
访问http://ip:9000(当然你也可以在创建容器的时候自定义其他端口)
开始安装:
此处我们选择的mariadb/mysql(注:此处我们没有用docker拉取mysql数据库,直接yum安装的)
但是你很有可能遇到如下报错,或者一些其他的报错(来一波彩虹色的报错):
Error while trying to create admin user: Failed to connect to the database: An exception occurred in driver: SQLSTATE[HY000] [1130] Host '172.18.0.2' is not allowed to connect to this MariaDB server
XXXXXXXXX refused connection
于是你去百度(如,docker如何连接宿主机数据库),发现有不少蛤蟆皮,文章写不清楚,没一个靠谱的
但是没关系,你遇到了我。
宿主机首先添加以下命令:
iptables -I INPUT -s 172.18.0.2 -p tcp --dport 3306 -j ACCEPT
关于上述ip 172.18.0.2如何确定的呢,报错有可能有提示,如上述报错就有,通过对比发现,一般腾讯云就是172.18.0.2,虚拟机里面的就是172.17.0.2
都是换汤不换药的
因为拉取的镜像创建的容器对于宿主机来说就是其他计算机,想要连接宿主机的数据库,iptables就要添加相应规则
然后你发现,欸他喵的还是会有错:
正常,博主探索初期也想砸电脑。
然后进宿主数据库,依次执行以下命令:
grant all privileges on cloud.* to 'root'@'172.18.0.2' identified by '自定义密码,不一定是mysql的密码,123456' with grant option;
flush privileges;
解释一下,第一条命令是相当于设置一个情景模式,当172.18.0.2以root登录宿主机时,只能管理名为cloud的数据库(注:数据库要先在宿主机内创建好),增加安全性
第二天命令理解为刷新就好,刷新一下生效吧
再次造访:http://ip:9000
数据库连接的ip填写为172.18.0.1:3306,如果你用的腾讯云,ifconfig就会发现有一个docker0,ip为172.18.0.1,那么这就好理解了,容器通过docker访问宿主机数据库
官网下载客户端,包括linux,app,window,macOS平台的:
https://nextcloud.com/install/#install-clients
添加受信任的域名:
首先进入容器:
docker exec -it id /bin/bash
(注:容器id通过docker ps -a查看)
网上百度都会告诉你,要去修改config下面的config.php
但是你发现用不了vim命令,百度又告诉你,分两步战略走,apt update,apt-get install vim
然后你发现第一步战略就直接卡成翔,你又百度,docker容器apt update缓慢的原因
哦,原来是要换源(注:这是docker容器换源):
sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
终于快到飞起了。芜湖。
添加受信任域名截图如下,第一个ip+端口,第二个域名(完整域名,如:www.example.com,不要听有的蛤蟆皮说千万不能加www)
有这两个就可以了,不需要重启容器,就可以用域名加端口的形式访问nextcloud了(注:不要忘写逗号,域名注意是否正确,博主习惯性的添加.com的域名,结果发现自己的域名是.wang的,很操蛋)
部分内容参考文章https://www.cnblogs.com/haiton/p/11064727.html,就这篇还靠点普。其他的写的跟蛤蟆皮一样,不对就是蛤蟆皮。
nextcloud开放注册-添加注册功能
nihinumbra-nextcloud开放注册-添加注册功能