宝塔插件前端后端linuxGIT硬件闲谈
刘帅的个人博客
刘帅的个人博客
About Me:
我是刘帅,(曾用网名:偻儸小卒、会PS的小码农、爱折腾的小码农、Edison Liu),来自酉州桃花源,重庆市酉阳县可大乡。是一枚真正会修电脑的程序员,也是一个在编程的路上越走越远的设计师,曾编写过一个叫“锟斤拷”的项目,也曾设计过一张叫“五彩斑斓的黑”的设计稿。我的个人博客采用ginblog_nuxt编写使用ginblog改写有兴趣或者申请免费友情链接的朋友可以加我QQ我们一起交流学习。
747357766
EdisonLiu_
747357766@qq.com
将宝塔从manjaro宿主机移植到docker的centos中踩坑
2021-12-12 17:22
0
443

将宝塔从manjaro宿主机移植到docker的centos中踩坑

前言

昨天manjiaro更新,导致pacman和curl等一系列软件都无法使用了,重装后还是害怕类似事情发生,所以考虑将我的测试环境宝塔移植到docker镜像中,但是在移植的过程中踩了很多坑。下面我把我遇到的所有坑都一一分享给大家。

踩坑

一号坑

docker中使用centos7安装宝塔后,报错dbus不存在,宝塔能启动,也勉强能用,但是当我关闭防火墙(放行防火墙端口也报错)时就尴尬了,移植报错dbus文件不存在。emmmmm,这样及时能用我宿主机也无法访问docker内部的宝塔。


$ Error: DBUS_ERROR: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory

  • 1

爬坑

找了很多资料,也问了很多大佬,要么说文件不存在,要么说没有使用特权启动容器,可是我明明是使用了特权的。而且文件不存在我也知道,但我不知道这个是啥,也没找到如何将这个文件安装起来的方案。几番折腾没有任何收货,最后解决方案是我想到我苹果笔记本上之前有使用docker安装过一个宝塔的容器,有放行过端口。当我打开苹果电脑时惊喜的发现那里面的docker容器依然还在。于是我就导了个tar文件到公司电脑导入。果然当我导入完成后启动容器宝塔完美的跑起来了。而且宿主机也是能访问容器中的宝塔和网页。(感觉这可能是宝塔的问题,因为我之前苹果电脑中和我卸载使用的是同样的centos7环境,之前的就可以,但是我没有比较有力的证据)

二号坑

当我将我本地备份的www目录关联到容器内部时,惊喜的发现宝塔能跑起来,但是有个问题,就是mysql死活无法启动,报错有些文件丢失,好吧那我就老老实实重装。
将mysql文件夹移除,然后安装mysql安装完成自动启动,一切都很正常。但是当我打开网页的时候问题来了,无法访问数据库。e 不是安装完成已经自动启动了吗。但是并没有,当我停止mysql服务想要重新启动mysql的时候问题来了,一直卡在


$ Shutting down MySQL.............................................................................................................................................................................................................

  • 1

当我取消,然后启动mysql服务的时候,报mysql已经启动


$ mysqld_safe A mysqld process already exists

  • 1

当我链接数据库的时候,提示无法链接/tmp/mysql.sock


$ mysql
$ ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)

  • 1
  • 2

爬坑

最后看了有些tmp目录,emm ,/tmp/mysql.sock文件居然存在,想了一下 可能是我之前容器中切换www目录时并没有停止mysql导致文件遗留了吧。
最后这个文件删除,然后启动mysql,一切顺利。

三号坑

mysql是启动起来了,当我打开网站的时候报了另外一个错误,数据库名称不正确,几经波折最后发现/www/serve/data 目录下的数据库文件夹全被干掉了,还好我之前不止一个备份。

爬坑

遂从另外一个备份中将data文件夹拷贝过来。然后重启mysql再访问网站,最后还是提示数据库不存在。

爬坑2

最后抱着试一试的心态点击了一下宝塔数据库页面的“同步所有”按钮,然后再重启数据库。访问网站,至此奇迹出现。
同步所有按钮