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