写点什么

Docker 搭建 PHP+Nginx+MySQL+Redis

用户头像
书旅
关注
发布于: 2020 年 08 月 16 日
Docker搭建PHP+Nginx+MySQL+Redis

安装ubuntu



安装过程

  1. 查找ubuntu镜像

docker search ubuntu(下载下边star最多的)





  1. 拉取(下载)ubuntu镜像

docker pull ubuntu





  1. 查看一下已安装的镜像

docker images(从下边列表中可以看见我们刚安装的ubuntu)





  1. 运行ubuntu镜像

docker run -it -d --name myubuntu -p 8088:80 ubuntu
-d后台运行
–name自定义容器名
-p指定端口映射,前者为虚拟机端口,后者为容器端口



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



  1. 查看容器信息

docker inspect id(id为容器的id)





  1. 进入容器

docker exec -it id /bin/bash(id为容器id,也可以替换成容器名)



看到root@容器id:/#就说明已经成功进入到容器了(退出容器执行exit即可)



此时就可以使用这个ubuntu系统了,它是一个干净额ubuntu系统,各种东西都需要我们安装。连wget命令就没有。下边进行Nginx的安装,安装的过程中,需要安装哪些命令我们再进行安装



安装LNMP



安装过程

  1. 首先执行一下apt-get update,然后安装wget(apt-get install wget),这样我们才能安装其他的一些东西



  1. 然后我们选择使用lnmp的一键安装包来安装LNMP环境(https://lnmp.org/faq/lnmp-software-list.html)

wget http://soft.vpser.net/lnmp/lnmp1.6.tar.gz -cO lnmp1.6.tar.gz && tar zxf lnmp1.6.tar.gz && cd lnmp1.6 && ./install.sh lnmp





安装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)



将容器打包成镜像


docker commit -m "提交信息" --author "作者" 镜像id 新镜像名 //关于基础命令,可查看上一篇文章

docker commit -m "打包一个干净的ubuntu+lnmp环境,原容器名myubuntu" -a "shulv" 93f570047ae5 myubuntu2
说明:
-m 提交时的说明文字
-a 提交的镜像作者
倒数第二个参数是上边已经运行的容器的id
最后一个参数为新的镜像的名称(也可以加上标签,比如myubuntu2:lnmp)



执行完上边的打包命令之后会得到下图:

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

docker images





启动新的镜像



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

docker run -it -d --name myubuntu2 -p 8089:80 myubuntu2



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



没毛病,容器启动成功



进入容器

docker exec -it 容器ID /bin/bash



启动nginx,检查lnmp环境



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



OK,现在说明我们打包的镜像没问题



前边我们说到虚拟机克隆,克隆出来的镜像很麻烦,如果我们换一台电脑,还需要将镜像传输到这台电脑中,然后安装。而docker就方便多了,他有一个远程的线上仓库(Repository),只要我们将打包好的镜像推到远程仓库中,那么我们在任何一台有网且安装了docker的电脑上都可以获取到该镜像,十分方便。废话少说,下边就开始将我们的镜像推到远程仓库



将镜像推到远程仓库

(1)登录到dockerhub



这个是我们默认的镜像存放的地方,就像上边我们获取ubuntu镜像一样,其实也是从dockerhub上获取的。要想上传镜像到dockerhub,首先我们要登录它,如果还没有注册,可以去https://hub.docker.com 注册一下。注册完成之后就可以登录了

docker login





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

docker push myubuntu2(镜像名)





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

docker tag myubuntu2 shulv/myubuntu2:lnmp(将myubuntu2镜像标记为shulv/myubuntu2:lnmp镜像 其中shulv为用户名,其后的myubuntu2为仓库名、lnmp为标签)



更改完之后我们再推一次

docker push shulv/myubuntu2:lnmp



此时等待它推送完成就可以了



(3)拉取推送到远程的镜像

docker pull shulv/myubuntu2:lnmp



OK,整个过程就全部完成了



总结:在整个过程中,需要我们对docker有一定的了解,熟悉常用的命令,并了解每一步操作的含义。关于docker基础命令自己也有总结,感兴趣的可以看一下





发布于: 2020 年 08 月 16 日阅读数: 86
用户头像

书旅

关注

公众号:IT猿圈 2019.04.11 加入

还未添加个人简介

评论

发布
暂无评论
Docker搭建PHP+Nginx+MySQL+Redis