天天看点

docker 搭建php环境

1.拉取镜像

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

2.查看本地镜像

docker images
           
docker 搭建php环境

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项目)

docker 搭建php环境

参数说明:

–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