摘要:是本地文件的存儲目錄,是容器內文件的存儲目錄,表示只讀。編輯配置文件本地存儲路徑配置文件內容說明表示服務的,下文還會提及。訪問時,讓執行,這個路徑經轉換成。
看完 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
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/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
閱讀 642·2019-08-26 13:53
閱讀 3443·2019-08-26 10:26
閱讀 2491·2019-08-23 18:30