先拉镜像不解释
docker pull nginx
docker pull php:7.2.9-fpm
docker pull php:7.0-fpm
先启php
运行php 7.0 容器
docker run -d --name php70 \ -v /home/kiwidev/devspace/docker/www70:/var/www70 \ -p 9001:9000 \ php:7.0-fpm
再一个(7.2.9)
docker run -d --name php729 \ -v /home/kiwidev/devspace/docker/www729:/var/www729 \ -p 9003:9000 \ php:7.2.9-fpm
解释:
-v /home/kiwidev/devspace/docker/www729:/var/www729 , 讲本地目录挂载到容器的/var/www729 目录,这个地方nginx配置会用到
fastcgi_param SCRIPT_FILENAME /var/www729$fastcgi_script_name;
再启nginx
docker run -d -p 8090:80 --name ngx-ccc \ -v /root/nginx/conf/conf.d:/etc/nginx/conf.d \ -v /root/nginx/logs:/var/log/nginx \ -v /home/kiwidev/devspace/docker/www70:/var/www70 \ -v /home/kiwidev/devspace/docker/www72:/var/www729 \ --link php70:fpm-php70 \ --link php729:fpm-php729 \ nginx
解释,下面2项 -v 挂载,测试中发现是nginx 的root配置的根目录;
–link 容器name/ID:别名,ngx配置文件会用到
ngx配置文件,在/root/nginx/conf/conf.d 中新建xx.conf
server {
listen 80;
server_name php729.docker.com;
location / {
#root /usr/share/nginx/html;
root /var/www729;
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
#fastcgi_pass php:9000;
fastcgi_pass fpm-php729:9000; #上面ngx容器 --link 容器name的别名
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www729$fastcgi_script_name; #目测是php容器的根目录
include fastcgi_params;
}
}
在复制一个上面的配置,fastcgi_pass 给到fpm-php70:9000 就行了,还是注意下 SCRIPT_FILENAME 根目录,与php70容器对应就OK了
其他问题:
修改配置文件重启ngx容器(docker restart ngx-ccc 应该也可以)
docker exec -ti ngx-ccc /bin/base root@11asdfasdf # service ngixn reload
查看容器启动log
docker logs ngx-ccc
查看容器配置
grep Links -A 5 / grep Mounts -A 20
docker inspect ngx-ccc
启动,停止,删除容器
docker start/stop/restart/rm docker_name/id