一 、首先要先安装好docker,参考连接:MacOS Docker 安装
二、 nginx
docker pull nginx //默认拉取最新的
成功之后,docker images可查看
docker images
如图:
三、PHP
- 获取php 7.2镜像
docker pull php:7.2-fpm
执行 docker images 如图:
三、启动容器
- 目录介绍:
nginx相关目录:/data/conf/conf.d
项目根目录:/data/www
以上是我本地的目录,大家可根据自身修改/创建
- 启动php 容器
docker run -p 9000:9000 --name php72-fpm -v /data/www:/data/www -d php:7.2-fpm
- 参数说明:
-p 添加主机到容器的端口映射
-name 容器的名称、只要求唯一性,自己定义
-v 添加目录映射,主机上的/data/www映射到容器里面 的/data/www,如果主机没有这个目录就创建这个目录,或者映射别的目录,但是后面路径要统一
-d 让容器在后台运行
- 启动nginx镜像
docker run --name nginx -p 8080:80 -v /data/www:/data/www -v /data/conf/conf.d:/etc/nginx/conf.d -d nginx
- 查看镜像
docker ps
如图:
status==up 才算成功
四、配置调试
- 编辑default.conf
vim /data/conf.d/default.conf
# 以下为示例内容
server {
listen 80 default_server;
server_name _;
root /data/www;
location / {
index index.html index.htm index.php;
autoindex off;
}
location ~ \.php(.*)$ {
root /data/www/;
fastcgi_pass 172.17.0.2:9000;
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;
}
}
- 注意事项:
fastcgi_pass 对应的地址是PHP镜像地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' php72-fpm //查看php镜像的ip地址
- 也可使用容器names 或者 容器ID,例如: fastcgi_pass php72-fpm:9000;或者 fastcgi_pass a02d807eeab3:9000;
- php测试文件
vim /data/www/index.php
<?
echo "<?php phpinfo();" >
?>
- 重启nginx
进入nginx容器
docker exec -it 6432b8454716 sh
重启:
service nginx reload
访问成功页面
补充:
nginx虚拟机配置示例:
vim /data/www/conf.d/www.test.com.conf
server {
listen 80;
server_name www.test.com;
root /data/www/;
location / {
index index.html index.htm index.php;
autoindex off;
}
location ~ \.php(.*)$ {
root /data/www/;
fastcgi_pass 172.17.0.2:9000;
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;
}
}
vim /etc/hosts
//添加
127.0.0.1 www.test.com
重启nginx后 访问如下:
补充命令:
- 将主机/data/conf/conf.d/default.conf目录拷贝到容器96f7f14e99ab的/etc/nginx/conf.d/default.conf目录下
docker cp /data/conf/conf.d/default.conf d0224e584cd7:/etc/nginx/conf.d/default.conf
- 以特权方式运行容器
docker run -it --privileged=true -d nginx