**# LNMP:Linux、Nignx、Mysql、PHP
- 下载镜像到本地:
[root@localhost lnmp]# docker pull php:5.6-fpm
[root@localhost lnmp]# docker pull mysql:5.7
[root@localhost lnmp]# docker pull nginx
- 创建数据卷(路径:/var/lib/docker/volumes)
#创建nginx_conf数据卷,映射Nginx配置文件目录
[root@localhost lnmp]# docker volume create nginx_conf
#创建www数据卷,映射PHP和Nignx站点目录
[root@localhost lnmp]# docker volume create www
#创建Mysql数据卷,数据本地持久化
[root@localhost lnmp]# docker volume create mysql
- 创建相对应的容器
# 创建mysql:5.7的容器并命名mysql5.7,将容器的3306端口映射到主机的3306端口。把数据卷mysql挂载到容器的/var目录。设置root的密码为123456。
[root@localhost lnmp]# docker run -d -p 3306:3306 --name mysql5.7 -v mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
# 创建php:5.6-fpm的容器并命名php,将容器的9000端口映射到主机的9000端口。把www数据卷挂载到容器的/www目录(这个目录用于存放php脚本文件)
[root@localhost lnmp]# docker run -d -p 9000:9000 --name php -v www:/var/www/html --link mysql:mysql php:5.6-fpm
# 创建nginx的容器并命名nginx,将容器的80端口映射到主机的80端口。把nginx_conf数据卷挂载到容器的/etc/nginx/conf.d目录;www数据卷挂载到容器的/usr/share/nginx/html目录。
[root@localhost lnmp]# docker run -d -p 80:80 --name nginx -v nginx_conf:/etc/nginx/conf.d -v www:/usr/share/nginx/html --link php:php nginx
- 进入php容器,增加mysql模块
[root@localhost lnmp]# docker exec -it php /bin/bash
root@969c6cc20f35:/var/www/html# docker-php-ext-install mysql
root@969c6cc20f35:/var/www/html# php -m | grep mysql #查看是否安装成功
#Ctrl + D 推出容器,重启php
[root@localhost lnmp]# docker stop php
[root@localhost lnmp]# docker start php
- 修改配置文件 default.conf
[root@localhost lnmp]# vi /var/lib/docker/volumes/nginx_conf/_data/default.conf
location ~ \.php$ {
fastcgi_pass php:9000; #这里的php为--link 连接php的名
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
include fastcgi_params;
}
- 重启Nginx服务器
[root@localhost lnmp]# docker stop nginx
[root@localhost lnmp]# docker start nginx