码迷,mamicode.com
首页 > 其他好文 > 详细

docker搭建nextcloud

时间:2021-01-19 12:03:11      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:直接   this   lan   数据库   进入   wan   red   etc   creat   

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访问宿主机数据库
如果还是报错

针对centos7:

vim /etc/mycnf

添加:

bind-address = 0.0.0.0

重启mariadb(也就是mysql):

systemctl restart mariadb

再次造访:http://ip:9000
安装绝逼成功,不成功你在下面评论博主是蛤蟆皮。

安装的时候转圈转半天,说明安装成功。等一会儿即可,或者试试重新访问该链接就会进入登录界面
(注:安装成功后可去/etc/my.cnf删去之前添加的bind-address = 0.0.0.0,不影响使用了,过河拆桥,无懈可击,无懈可击,不好意思走错片场了)

官网下载客户端,包括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,就这篇还靠点普。其他的写的跟蛤蟆皮一样,不对就是蛤蟆皮。

docker搭建nextcloud

标签:直接   this   lan   数据库   进入   wan   red   etc   creat   

原文地址:https://www.cnblogs.com/sillage/p/14290121.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!