Windows 10 docker 配置(PHP+Nginx+Mysql)(thinkphp5项目)环境

开发笔记

推荐链接

链接目录

下载镜像

docker pull [镜像名]:[标签]
拉取Nginx最新版镜像

docker pull nginx
安装PHP镜像(这里推荐安装我下面链接的镜像,通过file进行安装)
(dockerfile)

docker pull php:8.0.26-fpm-buster(这个就是官方原生的)

创建桥接网络

创建一个桥接网络,以便容器可以相互通信。该网络与具体镜像无关,仅作为网络环境。

在同一个网络中的容器可以通过容器名称相互通信。

桥接网络是 Docker 默认的网络驱动,性能在大多数情况下是可接受的。

如果有更高的性能需求,可以考虑使用主机网络(host)或覆盖网络(overlay),但对于单机环境,桥接网络通常足够。

javascript 复制代码
docker network create nginx-php-network

运行 PHP-FPM 容器

javascript 复制代码
'下面的执行会报错的,因为有\ 我是为了更好的区分才这样显示'
docker run - 创建并运行一个新容器
-d - 后台运行(detach模式),不占用当前终端
--name php-fpm - 给容器命名为"php-fpm",便于后续管理
--network nginx-php-network - 将容器连接到我们刚创建的网络
-v /path/to/your/php/code:/var/www/html - 目录映射:
-v /path/to/your/php.ini:/usr/local/etc/php/php.ini:将 PHP 配置文件映射到容器内,以便自定义设置。
-p 9000:9000:端口映射,宿主机(Windows)的 9000 端口与容器内的 9000 端口相连,以便 Nginx 通过 9000 端口与 PHP-FPM 通信。
php:8.0.26-fpm-buster:指定使用的镜像名称和版本。


docker run -d --name php-fpm \
  --network nginx-php-network \
  -v /path/to/your/php/code:/var/www/html \
  -v /path/to/your/php.ini:/usr/local/etc/php/php.ini \
  -p 9000:9000 \
  php:8.0.26-fpm-buster
javascript 复制代码
我本地因为有多个项目所以创建了一个文件夹,专门处理nginx
'在一行执行,适合cmd,注意里面php.ini是我以前已经存在的,如果没有删除掉里面的多余路径'
docker run -d --name php-fpm --network nginx-php-network -v D:\wamp64\www\nginx:/var/www/html -v D:\wamp64\www\nginx\php.ini:/usr/local/etc/php/php.ini -p 9000:9000 php-fpm

配置nginx

执行创建容器的命令

javascript 复制代码
'我本地80端口被占用了,所以用的8999'
'nginx.conf文件就是下面的代码为了以后方面修改所以直接映射了nginx.conf'
docker run -d --name nginx -p 8999:80 -v D:\wamp64\www\nginx\nginx.conf:/etc/nginx/nginx.conf nginx

nginx.conf文件相关配置

javascript 复制代码
user root;
events {
    worker_connections 1024;
}

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    server {
        listen 80;
        server_name localhost;

        # 重要:设置正确的根目录
        root /var/www/html/risk/public;
        index index.php index.html index.htm;

        location / {
            # ThinkPHP URL重写
            try_files $uri $uri/ /index.php?s=$uri&$args;
        }

        location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass php-fpm:9000;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_path_info;
        }
    }
}
相关推荐
风落无尘4 小时前
Stable Diffusion WebUI & ComfyUI 完整安装教程:官方部署+一键整合包+Docker容器化(2026最新)
docker·容器·stable diffusion
CodeMartain9 小时前
Dify Windows 原生部署(无 Docker、纯本地)
运维·docker·容器
不正经的小寒10 小时前
PHP 8.4 核心特性
php
llrraa201011 小时前
配置docker国内镜像源
运维·docker·容器
木心术111 小时前
Windows系统下MySQL与AI工具集成方案:数据存储与调用实践
人工智能·windows·mysql
beyond阿亮12 小时前
Hermes Agent快速接入 QQ 完整教程|QQ聊天使用AI智能体
人工智能·windows·ai·openclaw·hermes agent
不正经的小寒12 小时前
PHP 8.3 核心特性
php
华为云开发者联盟12 小时前
告别繁琐操作,华为云码道 + Docker重塑远程开发体验
人工智能·学习·docker·华为云·软件开发·华为云码道
DONSEE广东东信智能读卡器13 小时前
用PowerShell实现Windows 本地 WSS/HTTPS 自签名证书配置方法
windows·网络协议·https·powershell·身份证阅读器
m_1368713 小时前
Docker Desktop WSL2 启动失败:ext4.vhdx 拒绝访问(E_ACCESSDENIED)完整解决方案
docker