使用Docker快速搭建Nginx+PHP-FPM环境

使用Docker快速搭建Nginx+PHP-FPM环境

在上一周笔者对docker了解,仅限于这样认知:它能替代虚拟机,并且比虚拟机更省资源。

在老师和同事的感染下,感觉不学习docker好像就不能在IT圈混一样,于是,开始涌入Docker的大潮中。但万事开头难,听了同事的推荐,看了宁皓网的基础的视频之后感觉仅是对基本的命令进行了了解。但是真拿出来用还是不够用的,于是开始搜罗更重资料,学习搭建LNMP环境。

终于功夫不负有心人,在今天终于是实验成功了,特此写下这篇笔记,为后来人提供一个示例。

实战

下载nginx官方镜像和php-fpm镜像

docker pull nginxdocker pull bitnami/php-fpm

图片.png

笔者未进行更改docker源,依然是官方源。

当然,你可以使用中国源。

使用php-fpm镜像开启php-fpm应用容器

docker run-d--name myFpm-p-v/var/www/html:/usr/share/nginx/html bitnami/php-fpm

-d : 该参数为后台运行之意

-v : 指定宿主机与容器的映射关系。/var/www/html为宿主机的项目目录(自定义的),/usr/share/nginx/html为nginx服务器项目默认的路径。

使用nginx镜像开启nginx应用容器

docker run-d--name myNginx-p8080:80-v/var/www/html:/usr/share/nginx/html nginx

-p : 该参数设置端口对应的关系。所有访问宿主机8080端口的URL会转发到nginx容器的80端口。

查看对应的IP信息

首先查看是否启动成功

docker ps -a

图片.png

可以看到,上述在STATUS一栏中显示UP,其含义为正在运行。

* 查看IP信息

docker inspect myFpm | grep "IPAddress"

图片.png

修改nginx的相关配置

在容器中是没有vim命令的,所以不能在容器中直接修改配置文件。所以我们必须通过变通的方式去解决这个问题,否则只能在每个容器中安装vim。

首先登录到对应的容器中,查看配置信息路径,这在之后修改时会用到。

docker exec -it myNginx /bin/bash

图片.png

-i : --interactive,交互模式。

-t : --tty,开启一个伪终端。

/bin/bash : 必须写,否则会报错。这是开始伪终端时,进入bash界面,也就是命令行界面。

查看对应的配置文件位置

/etc/nginx/conf.d/default.conf

图片.png

退出命令行,不要使用exit,因为exit会让容器停止。这里使用ctrl + p + q来退出容器。

使用专用的复制命令将配置文件复制到宿主机,然后在宿主机进行编辑(这就是变通的方法)

docker cp myNginx:/etc/nginx/conf.d/default.conf./default.conf

这里用到了上一步查询到的配置文件路径信息

在宿主机修改配置文件的php部分,内容如下:

location~\.php${fastcgi_pass172.17.0.2:9000;fastcgi_index  index.php;fastcgi_paramSCRIPT_FILENAME/usr/share/nginx/html$fastcgi_script_name;fastcgi_paramSCRIPT_NAME$fastcgi_script_name;include        fastcgi_params;}

再次使用复制命令将其复制到容器中,然后再次进入容器中,将nginx配置文件重新载入

docker cp./default.conf myNginx:/etc/nginx/conf.d/default.conf

进入到nginx容器中重新载入配置文件

docker exec -it myNginx /bin/bashservice nginx reload

成功了

我看了一下,用到的模块还都有。

图片.png

图片.png

图片.png

最后编辑于 :2017.12.07 19:16:54

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容