小编作为一个小白,在搭建lamp这个集成开发环境上卡了有4/5天,遇到了不少坑,有时候令人绝望,有时候又让人兴奋。作为小白,学得不深,在这里把这段时间踩过的坑以及学习经验跟大家分享,希望对大家的学习帮助。
什么?不知道docker!emmm.....在这里我先不介绍了,以后有机会我还整理下学习资料给大家哈,今晚的文章是一篇实操教程。
下载docker
下载LAMP镜像
启动 lamp 容器
访问:
启动这个容器的目的是为了测试镜像安装是否成功。
部署自己的php应用
Dockerfile内容为:
执行命令:
启动容器
测试访问
这一步是为了看下你的项目是否成功clone下来当你进行到这里的时候,你就要开始在容器上的mysql上创建数据库还有配置与你项目相关的apache2.conf文件。这时候你或许会疑惑,容器是‘虚拟化’的,我看不到文件目录,改怎么进行mysql和apache2的配置呢?没错,容器你无法在本地像访问服务器一样,你在服务器上是看到的“虚拟化”的。这里推荐一个工具NSENTER,它可以进入容器,进去后给你的感觉就好像你在服务器上又打开另一个‘服务器’。当然也有其他的工具,也可以达到同样的效果。
下载nsenter
你要把nsenter安装到你的主机(服务器)上,安装命令如下:
nsenter可以访问另一个进程的名称空间。所以为了连接到某个容器我们还需要获取该容器的第一个进程的PID。可以使用docker inspect命令来拿到该PID。
找到State.Pid(例如:30584),然后执行下面命令:
然后,你就可以进入容器啦!
将本地数据库同步到容器上
容器上mysql默认的登录用户为root,密码为空。
这时候你容器上的mysql只能容器内访问,也就是localhost,外网是无法访问的。解决办法如下:[图片上传中...(image.png-347418-1522675699365-0)]
因为我已经修改过了,所以显示为“%”,没修改过的为localhost然后建议你把mysql的密码也改了吧,访问你连接数据库的工具,无法访问无密码的数据库。操作如下:
接下来就是见证奇迹的时候了,你本地电脑,我用的工具的Navicat来连接mysql数据库。
你按照要求输入就好了,密码就是你刚改的密码,然后你就可以看到容器上数据库啦。
apache2的配置
这个是我采坑时间最长的,在我绝望的时候,多谢舍友小李和宇哥拉了我一把。主要是我的项目的用thinkphp框架写的,在url重写上,apach2配置需要修改一部分内容。我理解的也不是很深刻,后续还得多学习,我主要修改的地方有:
蓝框里的内容去掉。(我觉得我这部分说的不透彻,但这个操作是成功的,有兴趣的同学,可以去apache的官网上看配置文件)
在这里,感谢大家坚持到最后,看完了全部内容。有错误麻烦大家提出来,感谢!
今日作者: benny
不当你的世界,只作你的肩膀
欢迎关注:程序员的碎碎念
领取专属 10元无门槛券
私享最新 技术干货