Nginx版本:1.27.3
Mysql版本: 8.0.40
PHP版本:8.1.31
前提要打开windows下Linux子系统
一、搭建nginx
拉取nginx镜像,可以在Docker桌面版上查询镜像,也可以使用命令拉取,命令具体网上都有(这里要科学上网才可以)
使用
docker run --name nginx-test -p 8080:80 -d nginx 运行容器,最后通过浏览器访问127.0.0.1:8080 验证服务是否正常,出现以下画面就是正常的
然后使用
docker stop和 docker rm 命令将nginx容器停止并删掉
二、搭建php
拉取php-fpm镜像,步骤和nginx镜像拉取是一样的,也可以用命令 docker pull php:8.1.31-fpm,
然后执行命令 docker run --name php8.1.31 -v ~/nginx/www:/www -d php:8.1.31-fpm 将主机中的目录挂载到容器里,mkdir ~/nginx/conf/conf.d 创建nginx配置文件目录
在该目录下添加 ~/nginx/conf/conf.d/default.conf 文件,内容如下:
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~\.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;
include fastcgi_params;
}
}
重新运行nginx容器并将目录挂载和把php-fpm的网络并入 docker run --name nginx -p 8083:80 -d ~/nginx/www:/usr/share/nginx/html:ro -v ~/nginx/conf/conf.d:/etc/nginx/conf.d:ro --link php8.1.31:php
- -p 8083:80: 端口映射,把 nginx 中的 80 映射到本地的 8083 端口。
- ~/nginx/www: 是本地 html 文件的存储目录,/usr/share/nginx/html 是容器内 html 文件的存储目录。
- ~/nginx/conf/conf.d: 是本地 nginx 配置文件的存储目录,/etc/nginx/conf.d 是容器内 nginx 配置文件的存储目录。
- --link myphp-fpm:php: 把 myphp-fpm 的网络并入 nginx,并通过修改 nginx 的 /etc/hosts,把域名 php 映射成 127.0.0.1,让 nginx 通过 php:9000 访问 php-fpm。
在 ~/nginx/www 目录下创建 info.php 文件 输入如下代码
<?php
echo phpinfo();
?>
最后访问**http://127.0.0.1:8083/info.php**
如果要部署虚拟域名直接在 ~/nginx/conf/conf.d 里复制默认的conf后缀的文件,例如elong.test.vip
elong.test.vip.conf文件里的代码:
server {
listen 80;
server_name elong.test.vip;
location / {
root /usr/share/nginx/html/elong.test.vip/public;
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html/elong.test.vip/public;
}
location ~\.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/elong.test.vip/public/$fastcgi_script_name;
include fastcgi_params;
}
}
还要修改host文件
域名 + 端口号访问 elong.test.vip:8083/info.php
三、mysql
拉取镜像 docker pull mysql:8.0.40
运行 docker run -itd --name mysql8.0.40 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
123456是mysql密码
3306是端口映射