Docker安装Lnmp环境(PHP+Mysql+Nginx)

时间:2017-04-18作者:klpeng分类:Web服务器浏览:2339评论:0

上篇文章讲了docker的安装和使用示例,这篇文章来讲解下docker安装PHP+Mysql+Nginx,其实docker可以直接使用lnmp镜像,但是这篇文章主要是为了演示,就一步步来:


首先我们创建一个目录叫dockerlnmp,下面的操作都是在该目录下

一、安装Nginx

 cd nginx
 docker pull nginx:1.9
 run -p 8088:80 --name dknginx -v $PWD/html:/etc/nginx/html -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/etc/nginx/logs  -d nginx:1.9
 #注意先把nginx目录下的三个目录html、conf、logs建好,conf/nginx.conf配置文件里面不要有错

-p 8088:80:将容器的8088端口映射到宿主机的80端口

--name dknginx:将容器命名为dknginx

-v $PWD/html:/etc/nginx/html:将宿主机中当前目录下的html挂载到容器的/etc/nginx/html

-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:将宿主机中当前目录下的nginx.conf挂载到容器的/etc/nginx/nginx.conf

-v $PWD/logs:/etc/nginx/logs:将宿主机中当前目录下的logs挂载到容器的/etc/nginx/logs

启动成功之后可以放一个html文件到html目录下,然后访问8088端口看看,没有成功的同学一般是因为nginx.conf有问题哈


二、安装PHP

cd ../php
docker pull php:5.6-fpm
docker run -p 9001:9001 --name  dkphp-fpm -v ~/dockerlnmp/nginx/html:/etc/php/www -v $PWD/conf:/etc/php/etc -v $PWD/logs:/etc/php/logs   -d php:5.6-fpm

-p 9001:9001 :将容器的9001端口映射到宿主机的9001端口

--name dkphp-fpm :将容器命名为dkphp-fpm

-v ~/dockerlnmp/nginx/html:/etc/php/www :将宿主机中项目的目录html挂载到容器的/etc/php/www

-v $PWD/conf:/etc/php/etc :将宿主机中当前目录下的conf目录挂载到容器的/etc/php/etc

-v $PWD/logs:/etc/php/logs :将宿主机中当前目录下的logs目录挂载到容器的/etc/php/logs

启动成功之后可以放一个index.php文件到html目录下,此处是通过nginx+php实现web服务,nginx.conf配置文件的fastcgi_pass应该配置为dkphp-fpm容器的IP。

查看容器IP:  docker inspect 容器ID或容器名 |grep '"IPAddress"'

nginx.conf里面这样写:fastcgi_pass  容器IP:9001;


三、安装Mysql

cd ../mysql
docker pull mysql:5.6
docker run -p 3316:3306 --name dkmysql -v $PWD/conf/my.cnf:/etc/mysql/my.cnf -v $PWD/logs:/etc/mysql/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

这个就不一个个解释了,跟上面含义一样,启动成功之后用客户端连接一下试试,端口用3316,没有成功的同学一般是因为my.cnf有问题

希望这几个示例能给正在学习docker的同学一些借鉴和帮助。


原创文章如转载,请注明出处,本文首发于彭超的博客

打赏
文章版权声明:除非注明,否则均为彭超的博客原创文章,转载或复制请以超链接形式并注明出处。
相关推荐

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

猜你喜欢