docker 搭建php环境

本文详细介绍了如何使用Docker拉取镜像,创建网络,运行并管理PHP、Nginx和MySQL容器,包括映射端口、网络配置和常见操作。通过实例展示如何配置Nginx并解决MySQL权限问题,提供了一套完整的容器部署流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.拉取镜像

 docker pull php:8.0.5-fpm-buster
 docker pull nginx:latest
 docker pull mysql/mysql-server:latest

2.查看本地镜像

 docker images

在这里插入图片描述3. 创建网络 & 查看本地网络信息

 docker network create -d bridge php-net
 docker network ls

4.运行容器

 docker run --name php8.0.5 -v /Users/lsy/nginx/www:/www --network php-net -itd php:8.0.5-fpm-buster /bin/bash
 docker run --name nginx -p 8098:80 -v /Users/lsy/nginx/www:/usr/share/nginx/html -v ~/nginx/conf/conf.d:/etc/nginx/conf.d --network php-net -itd nginx:latest /bin/bash 
 docker run --name mysql -e MYSQL_ROOT_PASSWORD=root  -p 3309:3306 --network php-net -itd mysql/mysql-server:latest /bin/bash

附上 nginx配置文件(这里是laravel项目)
在这里插入图片描述

参数说明:
–name nginx:容器名称
-p 8098:80: 端口进行映射,将本地 8098 端口映射到容器内 80 端口
-d nginx: 设置容器在在后台一直运行
/Users/lsy/nginx/www 是本地项目存储目录,/usr/share/nginx/html 是容器内项目文件存储目录
~/nginx/conf/conf.d: 是本地 nginx 配置文件的存储目录,/etc/nginx/conf.d 是容器内 nginx 配置文件的存储目录
–network php-net : 设置容器使用php-net网络, nginx 可通过 php8.0.5 :9000 访问 php-fpm。

5.查看本地已启动容器

 docker ps

6.进入容器 & 启动php nginx服务

docker exec -it nginx /bin/bash
#启动 nginx服务
nginx
docker exec -it php8.0.5 /bin/bash
#启动 php-fpm
php-fpm
docker exec -it mysql /bin/bash
#启动 mysql (报错 mysqld.pid permission denied,赋权
chown -R mysql:mysql /var/run/mysqld/ )
mysqld

7.其他常用命令

 启动容器
 docker start nginx
 停止容器
 docker stop nginx
 重启容器
 docker restart nginx
 删除容器
 docker rm nginx
 查看容器映射路径等
 docker inspect nginx
 查看容器启动日志
 docker logs php 

 删除镜像  
 docker rmi nginx:latest 
 打包镜像
 docker save nginx:latest > ./nginx.tar
 解压镜像
 docker load < ./work/nginx.tar
### 使用Docker构建PHP开发环境 #### 准备工作 为了在Windows 10上使用Docker来创建一个适合PHP项目的开发环境,确保已经安装并配置好Docker Desktop[^1]。 #### 创建项目文件夹结构 建立合理的目录布局有助于更好地管理和部署应用。推荐如下所示的基础架构: ``` my-php-app/ ├── app/ │ ├── index.html │ └── index.php ├── conf/ │ ├── nginx/ │ │ └── default.conf │ └── php/ │ └── custom.ini ├── Dockerfile └── docker-compose.yml ``` 此结构不仅便于管理各个组件的配置文件,还支持通过`docker-compose`轻松启动多个服务实例[^2]。 #### 编写必要的配置文件 ##### `Dockerfile`: PHP-FPM镜像定制化设置 定义自定义化的PHP-FPM服务器映像,可以在此处添加所需的任何额外模块或工具集。 ```dockerfile FROM php:7.4-fpm-alpine # 安装常用扩展 RUN docker-php-ext-install opcache pdo pdo_mysql mysqli \ && pecl install redis \ && docker-php-ext-enable redis WORKDIR /var/www/html COPY ./app /var/www/html/ EXPOSE 9000 CMD ["php-fpm"] ``` ##### `conf/nginx/default.conf`: NGINX站点配置模板 设定Web服务器行为模式以及静态资源处理方式。 ```nginx server { listen 80; root /var/www/html; index index.php; location / { try_files $uri $uri/ =404; } location ~ \.php$ { fastcgi_pass php-upstream; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } } ``` ##### `docker-compose.yml`: 多容器编排描述文档 利用YAML语法指定参与协作的服务及其属性关系。 ```yaml version: '3' services: web: image: nginx:alpine ports: - ./conf/nginx:/etc/nginx/conf.d depends_on: - php php: build: . expose: - PHP_IDE_CONFIG=serverName=localhost volumes: - ./app:/var/www/html - ./conf/php/custom.ini:/usr/local/etc/php/conf.d/docker-custom.ini ``` 完成上述准备工作之后,在命令提示符窗口中切换至项目根路径执行`docker-compose up --build`指令即可自动拉取所需基础镜像、构建新版本的应用程序,并最终激活整个集群体系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值