PHP安装
- 拉取官方镜像
### 拉取php5.6 fpm的镜像
docker pull php:5.6-fpm
### 查看镜像
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
php 5.6-fpm 3458979c7744 23 months ago 344MB
- 运行php容器
docker run --name php56fpm -d \
-v /work/docker/www:/www \
php:5.6-fpm
命令说明:
--name php56fpm
命名容器名称为php56fpm
-d
后台运行容器
-v /work/docker/www:/www
将宿主机目录/work/docker/www挂载到容器的/www
php:5.6-fpm
指定镜像为php,TAG为5.6-fpm
Nginx安装
- 拉取官方镜像
### 拉取镜像
docker pull nginx
### 查看镜像
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest ae2feff98a0c 3 weeks ago 133MB
- 运行Nginx容器
docker run --name myNginx -p 8080:80 -d \
-v /work/docker/www:/www \
-v /work/docker/nginx/conf.d:/etc/nginx/conf.d \
--link php56fpm:php \
nginx
命令参数说明:
--name myNginx
命名容器名称为myNginx
-p 8080:80
将容器的80端口映射到宿主机的8080端口
-d
后台运行容器,并返回容器ID
-v /work/docker/www:/www
将宿主机目录/work/docker/www挂载到容器的/www
-v /work/docker/nginx/conf.d:/etc/nginx/conf.d
将宿主机目录/work/docker/nginx/conf.d挂载到容器的/etc/nginx/conf.d
--link php56fpm:php
把php56fpm的网络并入nginx容器,并修改nginx容器的/etc/hosts,让nginx可以通过php:9000访问到php-fpm
nginx
指定镜像名称
- Nginx配置
修改/work/docker/nginx/conf.d/default.conf配置文件如下:
server {
listen 80;
server_name localhost;
location / {
root /www;
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; #这个就是--link并入的网络连接
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www$fastcgi_script_name; #特别说明:这里的/www要与php56fpm容器里映射的php脚本路径一致,否则php-fpm将找不到php脚本,会报404错误
include fastcgi_params;
}
}
接下来我们在 /work/docker/www 目录下创建 index.php,代码如下:
<?php
phpinfo();
浏览器打开http://127.0.0.1:8080/index.php,显示如下: