因为我本职是前端工程师,这个docker一直都有了解,一般运维人员会用到的一个虚拟机,方便迁移和升级服务器的。
由于我想在公司的服务器上搞一个node服务器,但是老大说所有服务器都是在docker上运行的,所有我运行这个node,也需要在docker上运行。😓~可是我还不懂怎么操作docker,那就花点时间把它攻破吧。
之前我的vps运行了5年都没升级了,最新的wordpress,mysql,node都装不了,想搞点新花样都不行。原因是一直运行着老版本的centos6.4。之前实在没办法,嫌麻烦,一直没升级,因为升级系统需要重新装各种服务器,迁移备份文件,超级烦。所以都没弄。趁着这个docker刚刚学完的机会,感觉把vps升一升。现在用起来贼爽。
我的wordpress是在 php+mysql+apache环境下搭建的,现在需要用docker重新搭起来
1.apache
安装Apache的docker,在应用市场上搜索 https://hub.docker.com/ 一定要用官方提供的镜像。
2.php
安装Php 由于php是apache的一个拓展,安装起来真的很麻烦,搜了一下 https://hub.docker.com/_/php 发现php有捆绑apache的docker的镜像直接用了。 那就可以忽略apache的单独安装了
3.mysql
https://hub.docker.com/_/mysql
看了一下文档,不是很复杂
4.wordpress
再看一下,居然直接有worpress集成的镜像,镜像里已经包含对应的apache和php,也就是我只要安装wordpress和mysql的镜像就行了
秉着服务跟随应用的概念,worpress这个应用已经把apache和php集成进去了。我自己需要再分装一层把,mysql也集成进去。有可能我其它应用需要node或者其它版本的mysql,则需要安装一个新的docker服务器包含起来。
最后,由于各种docker参数和指令结合再一起确实是能把wordpress跑起来。但是也太复杂了。正好docker-compose这个功能就是为了解决这个问题,基本上配置好以后就是docker-compose build/up/down/rm 这样就能重启,构建,删除服务等操作。
5.nginx
理论上apache已经是能把web服务器跑起来了,但是考虑到以后还有很多的应用场景,比如https,node服务器,或其它端口的应用。我需要把http/https的协议集中管理,后来我又把nginx做了一层方向代理。
由于方向代理的http头有很多cookie,url相关信息,会影响后面的应用,配置的时候需要注意。
参考资料如下:
https://www.cnblogs.com/randomlee/p/8761799.html
https://www.w3cschool.cn/docker/docker-hello-world.html
https://blog.csdn.net/qq_36148847/article/details/79427878
http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html
http://www.ruanyifeng.com/blog/2018/02/docker-wordpress-tutorial.html