docker安装Nginx和php7软件
Nginx :
# docker pull nginx
# docker run -p 80:80 --name nginx -v /usr/local/nginx/www:/www \
-v /usr/local/nginx/:/etc/nginx -v /usr/local/nginx/logs:/var/log/nginx \
-v /usr/local/nginx/www/logs:/www/logs -d nginx
php :
# docker pull php:7.2-fpm
# docker run -p 9000:9000 --name php -v /usr/local/nginx/www:/www \
-v /usr/local/php/conf:/usr/local/etc/php -v /usr/local/php/logs:/phplogs \
-d php:7.2-fpm
先启动一个不带目录映射的,复制配置文件出来,再启动带有目录映射的
docker cp -a php1:/usr/local/etc/php /usr/local
命令说明:
-p 9000:9000 将容器的9000端口映射到主机的9000端口
--name myphp-fpm 将容器命名为myphp-fpm
-v ~/nginx/www:/www 将主机中项目的目录www挂载到容器的/www
-v $PWD/conf:/usr/local/etc/php 将主机中当前目录下的conf目录挂载到容器的/usr/local/etc/php
-v $PWD/logs:/phplogs 将主机中当前目录下的logs目录挂载到容器的/phplogs
查看容器启动情况
# docker ps
CONTAINER ID IMAGE COMMAND ... PORTS NAMES
00c5aa4c2f93 php:5.6-fpm "php-fpm" ... 0.0.0.0:9000->9000/tcp myphp-fpm
通过浏览器访问phpinfo()
PS:此处是通过nginx+php实现web服务,nginx配置文件的fastcgi_pass应该配置为myphp-fpm容器的IP。
fastcgi_pass 172.17.0.4:9000;
容器IP的查方法
docker inspect 容器ID或容器名 | grep '"IPAddress"'
注意:如果报错 file not find 需要修改nginx的配置文件
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; // /scripts 改为$document_root
include fastcgi_params;
}
留言评论