摘要:是本地文件的存储目录,是容器内文件的存储目录,表示只读。编辑配置文件本地存储路径配置文件内容说明表示服务的,下文还会提及。访问时,让执行,这个路径经转换成。
看完 docker 官方教程,想搭个本地 php 开发环境,可搜了一圈,也没找到特别满意的文章,顺手总结一个。
假设你知道 nginx、php-fpm 是什么
你了解 docker 的基本命令
运行环境MacBook Pro,OSX 10.11.5
启动 php-fpm解释执行 php 需要 php-fpm,先让它运行起来:
docker run --name dream-php -d -v ~/Workspace/tmp/www:/var/www/html:ro php:7.1-fpm
说明:
dream-php 是容器的名字。
~/Workspace/tmp/www 是本地 php 文件的存储目录,/var/www/html 是容器内 php 文件的存储目录,ro 表示只读。
编辑 nginx 配置文件本地存储路径:
~/Workspace/tmp/docker/nginx/conf.d/default.conf
配置文件内容:
server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ .php$ { fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name; include fastcgi_params; } }
说明:
php:9000 表示 php-fpm 服务的 URL,下文还会提及。
/var/www/html 是 dream-php 中 php 文件的存储路径,经 docker 映射,变成本地路径 ~/Workspace/tmp/www(可以再看一眼 php-fpm 启动命令)
启动 nginxdocker run --name dream-nginx -p 80:80 -d -v ~/Workspace/tmp/www:/usr/share/nginx/html:ro -v ~/Workspace/tmp/docker/nginx/conf.d:/etc/nginx/conf.d:ro --link dream-php:php nginx
说明:
-p 80:80 用于添加端口映射,把 dream-nginx 中的 80 端口暴露出来。
~/Workspace/tmp/www 是本地 html 文件的存储目录,/usr/share/nginx/html 是容器内 html 文件的存储目录。
~/Workspace/tmp/docker/nginx/conf.d 是本地 nginx 配置文件的存储目录,/etc/nginx/conf.d 是容器内 nginx 配置文件的存储目录。
--link dream-php:php 把 dream-php 的网络并入 dream-nginx,并通过修改 dream-nginx 的 /etc/hosts,把域名 php 映射成 127.0.0.1,让 nginx 通过 php:9000 访问 php-fpm。
测试结果在 ~/Workspace/tmp/www 下放两个文件:
index.html
Hello World
phpinfo.php
接下来看结果吧:
http://localhost
http://localhost/phpinfo.php
如果看到 Hello World 和熟悉的 phpinfo,那么大功告成。
访问 index.html 时,nginx 读的是 /usr/share/nginx/html/index.html,这个路径经 dream.nginx 转换变成本地的 ~/Workspace/tmp/www/index.html。
访问 phpinfo.php 时,nginx 让 php-frm 执行 /var/www/html/phpinfo.php,这个路径经 dream.php 转换成 ~/Workspace/tmp/www/phpinfo.php。
FAQ怎样观察容器内文件系统:
docker exec -it dream-nginx bash
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/26734.html
摘要:是本地文件的存储目录,是容器内文件的存储目录,表示只读。编辑配置文件本地存储路径配置文件内容说明表示服务的,下文还会提及。访问时,让执行,这个路径经转换成。 看完 docker 官方教程,想搭个本地 php 开发环境,可搜了一圈,也没找到特别满意的文章,顺手总结一个。 假设 你知道 nginx、php-fpm 是什么 你了解 docker 的基本命令 运行环境 MacBook Pr...
摘要:是本地文件的存储目录,是容器内文件的存储目录,表示只读。编辑配置文件本地存储路径配置文件内容说明表示服务的,下文还会提及。访问时,让执行,这个路径经转换成。 看完 docker 官方教程,想搭个本地 php 开发环境,可搜了一圈,也没找到特别满意的文章,顺手总结一个。 假设 你知道 nginx、php-fpm 是什么 你了解 docker 的基本命令 运行环境 MacBook Pr...
摘要:地址这是一份适用于生产和开发环境的。目前已经在我司的生产环境上并运行良好。日常开发中也是基于此镜像进行的。如果想快速看看镜像里有啥东西,只需要运行其中替换成你实际的镜像。开发环境的使用单独运行这个容器是没有意义的。 GITHUB地址:https://github.com/banyancheu... 这是一份适用于生产和开发环境的 Dockerfile。 在 phuison/baseim...
摘要:地址这是一份适用于生产和开发环境的。目前已经在我司的生产环境上并运行良好。日常开发中也是基于此镜像进行的。如果想快速看看镜像里有啥东西,只需要运行其中替换成你实际的镜像。开发环境的使用单独运行这个容器是没有意义的。 GITHUB地址:https://github.com/banyancheu... 这是一份适用于生产和开发环境的 Dockerfile。 在 phuison/baseim...
摘要:用进行操作为在的工作区域,项目也是挂载在里面,所有我们可以直接在容器里运行。或者进入宿主机目录下用命令注意事项注意挂载路径构建失败时,注意容器内是否报错加速镜像。本文首发在我的博客徒手用构建自己的开发环境 1. 前言 1.1 为什么要用 Docker ? 是否有这样的场景,你搞了一个项目,在本地开发时需要搭建环境,放到线上时也需要搭建环境,到公司想暗戳戳玩一下要搭建环境,不搭还不行,因...
阅读 3768·2021-08-30 09:47
阅读 3690·2019-08-30 15:56
阅读 677·2019-08-30 14:18
阅读 698·2019-08-29 16:17
阅读 2065·2019-08-29 11:07
阅读 641·2019-08-26 13:53
阅读 3443·2019-08-26 10:26
阅读 2491·2019-08-23 18:30