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)