mac docker desktop 安装 php+mysql+nginx

nginx   2026-08-28 11:17   9   0  

1.docker下载所需镜像

docker pull php:8.2-fpm

docker pull mysql:5.7

docker pull nginx:1.20

2.配置映射镜像

docker run -d --name mysql5.7 --privileged=true --restart always -p 3306:3306 
 -v ~/mynmp/mysql/conf:/etc/mysql/conf.d -v ~/mynmp/mysql/logs:/logs 
 -v ~/mynmp/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root 
 --network my-network mysql:5.7

-v ~/mynmp/mysql/data:/var/lib/mysql 将主机 ~/mynmp/mysql/data 目录挂载到容器的 /var/lib/mysql

-v ~/mynmp/mysql/conf:/etc/mysql/conf.d 将主机 ~/mynmp/mysql/conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf

-d 表示以守护进程方式运行容器。

--name mysql8.0 指定容器的名称为mysql8.0。

--privileged=true 给予容器额外的权限。

--restart always 设置容器总是重启。

-p 3306:3306 将宿主机的3306端口映射到容器的3306端口。

-e MYSQL_ROOT_PASSWORD=root 设置MySQL的root密码为root。

--network my-network 指定容器加入之前创建的桥接网络。

docker run -d -p 9000:9000 --name php8.2 -v /Volumes/data/www:/app 
-v ~/php/etc:/usr/local/etc/php/conf.d --privileged=true --restart always 
--network my-network php:8.2-fpm

vim /usr/local/etc/php/php.ini

-p 9000:9000 将宿主机的9000端口映射到容器的9000端口。

--name php7.4 指定容器的名称为php7.4。

-v /Users/shou/www:/app 将宿主机的/Users/shou/www目录挂载到容器的/app目录,实现文件共享。

其他参数含义同上。

docker run --name nginx1.20 -p 80:80 -v /Volumes/data/www:/app 
-v /Volumes/data/nginx_conf:/etc/nginx/conf.d --privileged=true 
--restart always --network my-network nginx:1.20

--name nginx1202 指定容器的名称为nginx1202。

-p 80:80 将宿主机的80端口映射到容器的80端口,实现Web服务的访问。

其他参数含义同上。

nginx配置参考

location ~ \.php(.*)$ {
            fastcgi_pass   php8.2:9000;//这里的php8.2是容器名字
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
}



博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。