docker 安装php

Posted lonelyxmas

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker 安装php相关的知识,希望对你有一定的参考价值。

原文:docker 安装php

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/wwwlogs:/wwwlogs -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

查看容器启动情况

runoob@runoob:~/php-fpm$ 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的配置文件
1
2
3
4
5
6
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;
}

 

 
 
 
 

技术图片

 

以上是关于docker 安装php的主要内容,如果未能解决你的问题,请参考以下文章

PHP必用代码片段

超实用的php代码片段

比较有用的php代码片段

docker为docker下的php容器安装php-redis扩展编译安装

Docker php安装扩展步骤详解

Docker删除报错:Error response from daemon: conflict: unable to delete 08b152afcfae (must be forced)(代码片段