Docker - Nginx + Php-fpm 开发环境
Posted ﹎斑斓的梦ぷ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker - Nginx + Php-fpm 开发环境相关的知识,希望对你有一定的参考价值。
下载镜像
docker pull nginx
docker pull bitnami/php-fpm
环境配置
在物理机构建好你的开发环境需要的配置目录以及Nginx的配置文件,方便管理。
构建容器
docker run --name myFpm -v /Users/zhen/www-root/work:/usr/share/nginx/html -v /Users/zhen/docker/lnmp/nginx:/etc/nginx/conf.d -d bitnami/php-fpm
docker run --name myNginx -p 80:80 -v /Users/zhen/www-root/work:/usr/share/nginx/html -v /Users/zhen/docker/lnmp/nginx:/etc/nginx/conf.d -d nginx
虽然一切正常但是还是无法通过物理机器访问,查看下ip信息,发现了问题。来修改Nginx配置吧。
docker inspect myFpm | grep "IPAddress"
docker inspect myNginx | grep "IPAddress"
server
{
listen 80;
server_name xxxx.com xxxxx.com xxxx.com
index index.html index.htm index.php;
root /usr/share/nginx/html/mhadmin;
#access_log /tmp/mhadmin.log;
#error_log /tmp/mhadmin_error.log error;
location / {
index index.php index.html;
try_files $uri $uri/ /index.php?$query_string;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
location ~ \.php {
fastcgi_pass 172.17.0.2:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
修改
fastcgi_pass 127.0.0.1:9000;
为:
fastcgi_pass 172.17.0.2:9000;
搞定。
常用的命令
进入容器
docker exec -it myNginx /bin/bash
复制容器内的配置到宿主机器
docker cp myNginx:/etc/nginx/conf.d/default.conf ./default.conf
复制宿主机器文件到容器
docker cp ./default.conf myNginx:/etc/nginx/conf.d/default.conf
nginx 重新加载配置
service nginx reload
停止所有容器
docker stop $(docker ps -a -q)
删除所有容器
docker rm $(docker ps -a -q)
以上是关于Docker - Nginx + Php-fpm 开发环境的主要内容,如果未能解决你的问题,请参考以下文章
Docker 生产就绪 php-fpm 和 nginx 配置
使用 docker 在 CentO 上设置 PHP-FPM、Nginx、Mariadb
如何为多个PHP-FPM容器构建单一的Nginx Docker镜像