创建网络
docker network create lnmp
创建宿主目录
mkdir -p /www/docker/nginx/logs
mkdir -p /www/docker/php/php74
mkdir -p /home/www
创建临时nginx 容器
docker run -d --name nginx
复制 nginx 配置文件
docker cp nginx:/etc/nginx/conf.d /www/docker/nginx
docker cp nginx:/etc/nginx/nginx.conf /www/docker/nginx
创建临时php 容器
docker run -d --name php74
复制 php 配置文件
docker cp php74:/usr/local/etc/php-fpm.d/www.conf /www/docker/php/php74
docker cp php74:/usr/local/etc/php/php.ini-development /www/docker/php/php74/php.ini
复制完成后销毁容器
docker rm -vf nginx php74
docker rm -vf nginx nginx
准备工作完成后,可以开始配置了
创建nginx容器
docker run -d --name nginx -p 8080:80 --network lnmp -v /www/docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /www/docker/nginx/conf.d:/etc/nginx/conf.d -v /www/docker/nginx/logs:/var/log/nginx -v /home/www:/home/www nginx
–network lnmp1也可以不在这一步写,执行完之后上面一步之后,运行
docker network connect lnmp nginx
创建php容器
docker run -d --name php74 -p 9000:9000 --network lnmp -v /www/docker/php/php74/www.conf:/usr/local/etc/php-fpm.d/www.conf -v /www/docker/php/php74/php.ini:/usr/local/etc/php/php.ini -v /home/www:/mnt/hgfs/hpperf_ske php:7.4-fpm
修改nginx配置
vi /www/docker/nginx/conf.d/default.conf
server里加入root /home/www
找到这一段,改成
location ~ \.php$ {
# root html;
fastcgi_pass php74:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
重启nginx
docker exec nginx nginx -s reload
在www里创建index.php,写入phpinfo(),此时已经可以正常访问php文件了
php装扩展
进入容器
docker exec -it php74 bash
设置镜像,不然安装太慢
sed -i "s@http://deb.debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list
安装PDO扩展
docker-php-ext-install pdo_mysql
其他扩展请自行百度
mysql容器
pull,run几个步骤之后
docker network connect lnmp mysql
注意php链接mysql时,要直接填写mysql容器别名,或者虚拟机的ip,不然连接不上
搞定!!