1、在dockerhub中下载 php版本为 5.6.40-fpm-alpine 的镜像

2、挂载php容器,因为php的文件目录需要放在www下,同时我们是基于Nginx配置,所以把Nginx下的html文件和php容器内部的www文件挂载在一起
docker run --name php -v $PWD/nginx-php/html:/www -p 9000:9000 -d php:5.6.40-fpm-alpine
docker ps 查看容器

3、如何进入php容器内部
docker exec -it 7b8df37e5839 /bin/sh
4、部署nginx
新建Nginx,挂载目录文件,我是挂载在【/opt/nginx-php】目录下
启动Nginx镜像
docker run --name nginx-php -p 9001:9001 \
-v $PWD/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/log:/var/log/nginx \
-v $PWD/html:/www \
-v $PWD/conf.d:/etc/nginx/conf.d \
-v $PWD/conf.d/default.conf:/etc/nginx/conf.d/default.conf \
--privileged=true --link php:php -d nginx:1.20
注意:--link 把php的容器和nginx容器关联起来,查看www文件下的文件
进入容器内部
[root@VM-4-8-centos logs]
root@3d1d15ce5dcc:/
bin boot dev docker-entrypoint.d docker-entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var www
root@3d1d15ce5dcc:/
root@3d1d15ce5dcc:/www
admin doCollect.php doMyCommentDelete.php dongman_movie.sql list.php myCommentEdit.php search.php video
assets doComment.php doMyCommentUpdate.php down.php login1.php myCommentList.php show.php ''$'\351\203\250\347\275\262''.txt'
doChangeInfor.php doLevel.php doPraise.php images logout.php nginx.htaccess system
doChangePassword1.php doLogin.php doUserReg.php

5、配置conf.d下default.conf文件,重启nginx-php容器
server {
listen 9001;
server_name 10.100.100.11:9001;
location / {
root /www;
index index.php;
}
location ~ .php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www$fastcgi_script_name;
include fastcgi_params;
}
}
6、配置完成之后,在浏览器启动 10.100.100.11:9001后可能会发现如下错误

7、在php的代码中如用如下的数据库连接方式
function connect(){
$link=mysqli_connect(DB_HOST,DB_USER,DB_PWD,DB_DBNAME);
mysqli_set_charset($link,DB_CHARSET);
return $link;
}
8、所以我们需要进入php容器下载mysql的插件,我的容器名字叫php
docker exec -it php /bin/sh
cd /usr/local/bin
./docker-php-ext-install pdo_mysql
./docker-php-ext-install mysqli

9、重新启动php容器
留个赞给个鼓励,谢谢看官老爷