记录一下,我在docker容器中配置Mysql时遇到的坑,以及处理过程中学到的知识。
起因
最近作业量多,任务重结果还是被点名出题(哭唧唧),没办法只能硬着头皮上。有了出题思路之后,和@wh1t3Pig交流之后得知需要使用docker-compose来布置出题环境。啥?卧槽?不能手动布置吗?算了,就当做是对我的考验。所以我开开心心的写好源文件之后,开始准备布置环境,那么到底是直接拉个Mysql,还是直接在容器内部装?在内部装又有各种问题。。。这里就把这些坑记录下来造福后人,同时也有一定的分析。
web server+mysql or in one container?
在参考多个知名项目和比赛题目的Dockerfile,docker-compose.yml,start.sh之后,毅然决定使用把服务全部装进一个容器的思路。
为什么?考虑有以下几点:我出的题目是SQLi,需要提前在数据库中插入数据,然而使用直接拉一个Mysql的方式,非常不方便,如果要插入数据必须要再写一个针对Mysql的Dockerfile,那这样还不如直接放在一起。
这道题的数据库和其他题目不共享,单独拉一个的意义不大。
如果以后要多节点部署这种题目,数据库独立的话能避免队伍之间搅屎。
注:要是有师傅能有更好的解决方案,欢迎交流。
Mysql的安装交互问题
那么采用了服务装进一个容器里面之后,发现了另外一个问题,apt-get install mysql-serv