Docker - Nginx + Php-fpm 开发环境

下载镜像

1
2
docker pull nginx
docker pull bitnami/php-fpm

环境配置

在物理机构建好你的开发环境需要的配置目录以及Nginx的配置文件,方便管理。

图片是我的Apache的配置目录,Nginx同理。

构建容器

1
2
3
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配置吧。

1
2
3
docker inspect myFpm | grep "IPAddress"

docker inspect myNginx | grep "IPAddress"

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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;

搞定。

常用的命令

进入容器

1
docker exec -it myNginx /bin/bash

复制容器内的配置到宿主机器

1
docker cp myNginx:/etc/nginx/conf.d/default.conf ./default.conf

复制宿主机器文件到容器

1
docker cp ./default.conf myNginx:/etc/nginx/conf.d/default.conf

nginx 重新加载配置

1
service nginx reload

停止所有容器

1
docker stop $(docker ps -a -q)

删除所有容器

1
docker rm $(docker ps -a -q)
0%