Docker建网站 4条命令搞定
提起云计算,肯定少不了kvm和Docker这两个重量级的角色。没有这两位,就没有云计算。其中,Docker可能更重要。
我不想跟大家讲Docker的概念什么的。你只需要知道它很厉害就成了!而我呢,只想拿Docker来建一个网站给大家瞧瞧。呵呵,高射炮打蚊子?关键是,高射炮还真打不着蚊子。Docker却真的能建网站。在只有一个操作系统的情况下,用Wordpress建网站,只需要3条命令行!
先看看,不用Docker,传统模式下,如何建设起一个网站来。一般会经过以下四个步骤。是步骤,不是命令行。要数命令行,差不多有30多行的样子。
第1步:安装Apache
第2步:安装MariaDB
第3步:安装PHP
第4步:安装Wordpress
上面的四步,不管你用什么yum,还是用rpm,或者编译安装,最少得1个小时。其中,还要专门为Apahce安装一个特别的模块apxs。还要修改Apahce的主配置文件;添加一个虚拟主机的配置文件;在MariaDB里内为Wordpress创建用户和数据库。最后,开通防火墙,恢复网页目录的SELinux安全上下文标签等等,步骤很多,非常繁琐。我在几所学校里提供Linux实训时使用上面的四步,输入的命令行数十行,讲解并完成上述过程一般都需要四节课的时间。
在运行Docker的方法前,看看我的运行环境:
硬件主机:小米笔记本电脑,运行Windows 10
操作系统:VirtualBox下的Ubuntu 18
网络条件:Ubuntu已经联通互联网
上图中,演示的环境比较复杂。如果我们在一台安装着Linux操作系统的电脑上,如租用的Linux云主机上,就没有这么多层次。
第1条命令:安装Docker
$ sudo apt-get install docker.io
第2条命令:将普通加入Docker组
$ sudo gpasswd -a alan docker
将当前的普通用户alan添加到docker组内。你安装的时候,创建的普通用户是谁,你就把alan替换成那个用户名,就成了。
第3条命令:创建MariaDB的容器
$ docker run --name mariadb-test -e MYSQL_ROOT_PASSWORD=123456Abcd -d mariadb
在MariaDB里,为root用户设置了一个密码:123456Abcd。这么长的密码是Wordpress要求的:有数字,有大、小写字母。容器的名字叫 mariadb-test,要运行的是一个名叫maria的软件。我的Ubuntu里没有它的镜像,便直接从hub.docker.com上下载。
第4条命令:创建Wordpress的命令
$ docker run --name wordpress-test --link mariadb-test:mysql -p 80 -d wordpress
创建,并运行一个名叫wordpress-test的容器,还扯上那个名叫mariadb-test的,并且要开通80端口。
第5条命令:查看日志
$ docker logs 630e
630e是上一条命令返回的一长串字符——即一个名叫wordpress-test的容器的ID的前4位。当然,你看到的ID肯定不同。你只需要使用前面的4位即可。我们这条命令是要查看该容器的运行信息。如果前面的id不显示,或你弄丢了。就输入docker container ls查找容器的id。在里面我们会看到一个IP地址,可能是172.17.0.3。你看到的内容可能是这样的:
alan@alan-VirtualBox:~$ docker logs 630e
WordPress not found in /var/www/html - copying now...
Complete! WordPress has been successfully copied to /var/www/html
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.3. Set the 'ServerName' directive globally to suppress this message
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.3. Set the 'ServerName' directive globally to suppress this message
[Thu Nov 29 15:28:13.306609 2018] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.25 (Debian) PHP/7.2.12 configured -- resuming normal operations
[Thu Nov 29 15:28:13.306730 2018] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'
第6条命令:访问网站后台
$ firewfox http://172.17.0.3 &
这条命令运行之后,在弹出来的Firefox窗口内,为网站管理后台设置一个用户,并为该用户设置一个密码。你可以直接登录进去,发布一篇文章试试。然后,再打开一个浏览器窗口,再次输入 http://172.17.0.3,看到的就是网站的前台页面了。
等等,不是说4条命令就搞定吗?怎么运行了6条命令呢?其实,第3命令运行的时候,已经完成了网站的创建。第4条、第5条、第6条,仅仅是为网站设设置管理账号而已。就算是6条,也很快,对吧?
Wordpress可能是最著名的CMS软件,功能强大,非常灵活,图片、模板、布局等等都可以自定义。如果你会琢磨,肯定能利用后台把网站整出很多花样来。
有人问,我用的是CentOS操作系统行吗?当然行。
第1条命令: su
第2条命令:yum -y install docker
为简便起见,你直接变成root用户得了。后面的命令跟Ubuntu里的一样。
Docker可以做很多事情。建设网站,不过是众多功能中的一种。红帽公司将Docker与Google公司开源出来调试软件Kubernetes放在一起,再加上etcd这个强大的分布式配置进程,以及Ansible自动化工具等等,便成了三大云计算应用场景中的PaaS开源系统OpenShift。而OpenShift则是红帽高级认证RHCA(云计算方向)五门核心课程之一。想进行Docker培训学习的话,赶快来腾科报名吧。