docker pull mysql:5.7
docker pull nginx:1.20
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;
}