Docker 搭建 PHP+Nginx+MySQL+Redis

安装ubuntu
安装过程
查找ubuntu镜像

拉取(下载)ubuntu镜像

查看一下已安装的镜像

运行ubuntu镜像

查看我们已经在运行的容器

查看容器信息

进入容器

看到root@容器id:/#就说明已经成功进入到容器了(退出容器执行exit即可)
此时就可以使用这个ubuntu系统了,它是一个干净额ubuntu系统,各种东西都需要我们安装。连wget命令就没有。下边进行Nginx的安装,安装的过程中,需要安装哪些命令我们再进行安装
安装LNMP
安装过程
首先执行一下apt-get update,然后安装wget(apt-get install wget),这样我们才能安装其他的一些东西
然后我们选择使用lnmp的一键安装包来安装LNMP环境(https://lnmp.org/faq/lnmp-software-list.html)

安装mysql的版本

下边会提示是否使用InnoDB引擎(建议使用)
安装php

后边就是它安装的过程,十分的漫长(几十分钟到一个小时不等)

看到这个就安装完成了(安装的mysql、php、nginx在/usr/local目录下 。mysql配置文件在/etc/my.cnf)
上边运行镜像时,映射的虚拟端口为8088。(也可以使用docker ps看一下我们运行的ubuntu容器映射的端口)然后在浏览器中输入localhost:8088,看到下边页面就说明成功了。(想配置虚拟主机,可去官网查看:https://lnmp.org/faq/lnmp-vhost-add-howto.html)

将安装好的ubuntu+lnmp系统打包成镜像
玩儿过虚拟机的应该都知道,虚拟机是可以克隆的,克隆出来一模一样的一台(操作过的应该都知道,恶心的一批),现在使用docker实现一下(先退出之前的的容器 exit)
将容器打包成镜像
执行完上边的打包命令之后会得到下图:

说明镜像打包成功,此时再执行:

启动新的镜像
现在我们启动刚刚打包的镜像:

然后我们看看是否启动成功了

没毛病,容器启动成功
进入容器

启动nginx,检查lnmp环境

然后我们验证一下是否成功了,在浏览器中输入localhost:8089(启动容器时映射的端口为8089)

OK,现在说明我们打包的镜像没问题
前边我们说到虚拟机克隆,克隆出来的镜像很麻烦,如果我们换一台电脑,还需要将镜像传输到这台电脑中,然后安装。而docker就方便多了,他有一个远程的线上仓库(Repository),只要我们将打包好的镜像推到远程仓库中,那么我们在任何一台有网且安装了docker的电脑上都可以获取到该镜像,十分方便。废话少说,下边就开始将我们的镜像推到远程仓库
将镜像推到远程仓库
(1)登录到dockerhub
这个是我们默认的镜像存放的地方,就像上边我们获取ubuntu镜像一样,其实也是从dockerhub上获取的。要想上传镜像到dockerhub,首先我们要登录它,如果还没有注册,可以去https://hub.docker.com 注册一下。注册完成之后就可以登录了

(2)将本地镜像推到远程仓库

被拒绝了,google了一下,是因为我们需要更改镜像名前缀为我们的用户名
更改完之后我们再推一次

此时等待它推送完成就可以了
(3)拉取推送到远程的镜像
OK,整个过程就全部完成了
总结:在整个过程中,需要我们对docker有一定的了解,熟悉常用的命令,并了解每一步操作的含义。关于docker基础命令自己也有总结,感兴趣的可以看一下

版权声明: 本文为 InfoQ 作者【书旅】的原创文章。
原文链接:【http://xie.infoq.cn/article/52bb7708ee765d5672e65b769】。文章转载请联系作者。
评论