docker-compose.yml添加内容:
services:
nginx:
image: nginx:stable
ports:
- "100.96.39.29:80:80" # 绑定到内网IP的80端口
volumes:
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
- ./php:/var/www/html
depends_on:
- php
networks:
- wind-network #显示声明该docker的通信网络
php:
image: php:8.2-fpm
volumes:
- ./php:/var/www/html
networks:
- wind-network
networks:
wind-network:
driver: bridge
nginx配置文件内容:
server {
listen 80;
server_name wind.local;
root /var/www/html/wind/public;
index index.php index.html index.htm;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
# 静态文件缓存
location ~* \.(jpg|jpeg|gif|png|css|js|ico|webp|svg)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
}
编辑 /etc/hosts,添加一行:
#内网IP 内网域名
100.96.39.29 wind.local
重启 Docker 服务:
# 该docker根目录下执行
docker compose down && docker compose up -d
如果需要内网域名访问站点,所有访问的电脑hosts都需要加上一下内容:
# Windows: C:\Windows\System32\drivers\etc\hosts
# Linux/Mac: /etc/hosts
100.96.39.29 wind.local
docker里安装php扩展:
# 进入php docker命令行(docker compose exec php bash),(安装扩展,例如pdo_mysql)
docker-php-ext-install pdo_mysql
其他:
# 进入nginx docker内部,其他类似,这里的nginx是docker-compose.yml里的server里的容器名称(nginx|php)
docker compose exec nginx bash
# 退出docker内部 输入exit或ctrl + D
# 查看所有docker容器运行状态
docker ps
# 查看当前目录docker运行状态
docker compose ps