安装docker
首先,从官方的docker.com/products/doc下载安装,当然也可以选择:brew安装docker
brew cask install docker
拉取镜像
docker pull skiychan/nginx-php7:latest
创建container并运行
docker run --name nginx-php7 -p 8080:80 -v /Users/jjkkll/nginx-php7:/data/www -d skiychan/nginx-php7
- --name 指定container的名字
- -p 指定映射的端口,左边是宿主机的端口
- -v 指定文件夹的映射,左边是宿主机的路径
- -d Run container in background and print container ID
进入容器
在使用 -d
参数时,容器启动后会进入后台。
某些时候需要进入容器进行操作,包括使用 docker attach
命令或 docker exec
命令,推荐大家使用 docker exec
命令,因为用attach
时,如果从这个 stdin 中 exit,会导致容器的停止。
docker exec -it 69e bash
或
docker exec -it nginx-php7 bash
第一个是容器的md5值,可以通过list取得,一般取前几位即可
docker container list -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
69e52c4fa4d1 skiychan/nginx-php7 "/start.sh" 34 minutes ago Up 34 minutes 443/tcp, 0.0.0.0:8080->80/tcp nginx-php7
c738eb1f8a2f hello-world "/hello" 3 days ago Exited (0) 3 days ago naughty_engelbart
输出phpinfo
cd /data/www/
ls
echo "<?php phpinfo();">index.php
在宿主机浏览器打开http://localhost:8080/即可看到熟悉的phpinfo界面
附nginx配置
这个镜像的配置在/usr/local/nginx/conf/下的nginx.conf里:
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
root /data/www;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \.php$ {
root /data/www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /$document_root$fastcgi_script_name;
include fastcgi_params;
}
}