先拉镜像不解释
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