我使用的是ubuntu系统,在这里 docker一些基本命令操作 就不说了,直接上干货。
我是在 home目录下 增加 /home/ubuntu/var/www/html 和 /home/ubuntu/nginx 文件夹 用来放入口以及配置文件
1.MYSQL
#启动容器
docker run -d -p 3306:3306
--restart always
-e MYSQL_ROOT_PASSWORD=root
--name mysql daocloud.io/library/mysql:5.7.4
2.PHP-FPM
#拉取镜像
docker pull daocloud.io/library/php:7.4-fpm
#启动容器
docker run -d -p 9000:9000
--restart always
-v /home/ubuntu/www/html:/var/www/html --link mysql:mysql
--name php7 daocloud.io/library/php:7.4-fpm
3.NGINX
#拉取镜像
docker pull daocloud.io/library/nginx:1.13.2
#启动容器
docker run -d -p 80:80
--restart always
-v /home/ubuntu/www/html:/usr/share/nginx/html --link php7:php
--name nginx daocloud.io/library/nginx:1.13.2
#如果在 nginx容器 /usr/share/nginx/html 不存在index.html 那么在宿主机新增一个
cat > /home/ubuntu/www/html/index.html
<html>
<head>
<title>FANTASY</title>
</head>
<body>
<h1>HELLO EVERYONE</h1>
<h2>THIS IS DOCKER NGNIX</h2>
</body>
</html>
#修改 宿主机下的 nginx/conf.d/default.conf文件【提前将nginx容器内的配置文件夹拷贝到宿主机自定义目录 方便以后编辑修改】
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
location ~ \.php$ {
root /var/www/html;#PHP容器的目录
fastcgi_pass php7:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 赋值刚才修改的配置文件到容器
docker cp /home/ubuntu/nginx/conf.d/default.conf nginx:/etc/nginx/conf.d/default.conf
# 进入容器 重启容器
docker exec -it nginx /bin/bash
>> nginx -t
>> nginx -d reload
# 然后再宿主的目录下增加 index.php 文件,浏览器访问如果正常解析PHP则OK