docker-php鏡像包含nginx和php5.3.3

1.說明

該鏡像基于Alpine Linux v3.4內(nèi)核祷膳,安裝了Tengine version: Tengine/2.2.3(nginx version: nginx/1.8.1)和PHP 5.3.3 (cli),并通過supervisord進(jìn)程管理工具運(yùn)行tenginx和php兩個(gè)進(jìn)程,Dockerfile的ENTRYPOINT為
ENTRYPOINT ["/usr/bin/supervisord","-c","/etc/supervisord.conf"]
備注:tengine為淘寶基于NGINX二次開發(fā),用法和NGINX一樣泣特,便于理解以下都以nginx說明。

2.nginx安裝信息

nginx安裝目錄:/usr/local/nginx;
nginx日志目錄:/usr/local/nginx/logs;
nginx配置文件目錄:/usr/local/nginx/conf;
nginx二進(jìn)制文件目錄:/usr/local/nginx/sbin;
nginx root根目錄:/usr/local/nginx/html;
nginx的server虛擬機(jī)配置文件存放目錄:/usr/local/nginx/conf/vhosts

3.PHP安裝信息

PHP編譯安裝
PHP安裝目錄:/usr/local/php;
PHP二進(jìn)制文件路徑:/usr/local/php/bin;
PHP配置文件路徑:/usr/local/php/etc;
PHP-FPM二進(jìn)制文件路徑:/usr/local/php/sbin;

3.supervisord進(jìn)程管理

注意:vim /etc/supervisord.conf
修改nodaemon=false為true 這樣Dockerfile文件的入口文件可以前臺(tái)運(yùn)行宅粥,一定注意0锱觥!尼酿!
[include]
files = supervisord.d/*.conf #默認(rèn)是配置文件的后綴是.ini爷狈,這里修改為.conf

NGINX和PHP的supervisord配置文件路徑:/etc/supervisord.d
[root@9d0312f299f6 supervisord.d]# pwd
/etc/supervisord.d
[root@9d0312f299f6 supervisord.d]# ll
total 8
-rw-r--r-- 1 root root 1841 Apr 22 10:55 nginx.conf
-rw-r--r-- 1 root root 1853 Apr 22 10:44 php-fpm.conf

**nginx.conf的內(nèi)容如下**:
[program:nginx]
command=/usr/local/nginx/sbin/nginx -g "daemon off;"
autostart=true                ; start at supervisord start (default: true)
autorestart=true             ; whether/when to restart (default: unexpected)
startretries=5             ; max # of serial start failures (default 3)
exitcodes=0,2                 ; 'expected' exit codes for process (default 0,2)
stopsignal=QUIT               ; signal used to kill process (default TERM)
stopwaitsecs=10               ; max num secs to wait b4 SIGKILL (default 10)
stopasgroup=false             ; send stop signal to the UNIX process group (default false)
killasgroup=false             ; SIGKILL the UNIX process group (def false)
user=root                  ; setuid to this UNIX account to run the program
redirect_stderr=true          ; redirect proc stderr to stdout (default false)
stdout_logfile=/usr/local/nginx/logs/access.log        ; stdout log path, NONE for none; default AUTO
stdout_logfile_maxbytes=2048MB   ; max # logfile bytes b4 rotation (default 50MB)
stdout_logfile_backups=2     ; # of stdout logfile backups (default 10)
stdout_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0)
stdout_events_enabled=false   ; emit events on stdout writes (default false)
stderr_logfile=/usr/local/nginx/logs/error.log  ; stderr log path, NONE for none; default AUTO
stderr_logfile_maxbytes=2048MB   ; max # logfile bytes b4 rotation (default 50MB)
stderr_logfile_backups=2     ; # of stderr logfile backups (default 10)
stderr_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0)
stderr_events_enabled=false   ; emit events on stderr writes (default false)i
environment=GOGCTRACE=1       ; process environment additions (def no adds)

**php-fpm.conf的內(nèi)容如下**:
[program:php-fpm]
command=/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf   ; the program (relative uses PATH, can take args)
autostart=true                ; start at supervisord start (default: true)
autorestart=true              ; whether/when to restart (default: unexpected)
startretries=5                ; max # of serial start failures (default 3)
exitcodes=0,2                 ; 'expected' exit codes for process (default 0,2)
stopsignal=QUIT               ; signal used to kill process (default TERM)
stopwaitsecs=10               ; max num secs to wait b4 SIGKILL (default 10)
stopasgroup=false             ; send stop signal to the UNIX process group (default false)
killasgroup=false             ; SIGKILL the UNIX process group (def false)
user=root                  ; setuid to this UNIX account to run the program
redirect_stderr=true          ; redirect proc stderr to stdout (default false)
stdout_logfile=/usr/local/php/var/log/php-fpm.log        ; stdout log path, NONE for none; default AUTO
stdout_logfile_maxbytes=2048MB   ; max # logfile bytes b4 rotation (default 50MB)
stdout_logfile_backups=2     ; # of stdout logfile backups (default 10)
stdout_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0)
stdout_events_enabled=false   ; emit events on stdout writes (default false)
stderr_logfile=/usr/local/php/var/log/php-fpm-error.log  ; stderr log path, NONE for none; default AUTO
stderr_logfile_maxbytes=2048MB   ; max # logfile bytes b4 rotation (default 50MB)
stderr_logfile_backups=2     ; # of stderr logfile backups (default 10)
stderr_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0)
stderr_events_enabled=false   ; emit events on stderr writes (default false)i
environment=GOGCTRACE=1       ; process environment additions (def no adds)

4.鏡像使用

拉取鏡像:docker pull liujiabao/php:v2.1
使用鏡像創(chuàng)建容器:
docker run -itd -v /Users/php_code:/usr/local/nginx/html  -v /Users/nginx_vhosts:/usr/local/nginx/conf/vhosts -p 80:80 liujiabao/php_5.3.3:v1.4

說明:
(1)/Users/nginx_vhosts為本地目錄,該目錄下的nginx server虛擬機(jī)的配置文件掛載到容器內(nèi)的/usr/local/nginx/conf/vhosts目錄下裳擎;
(2)/Users/php_code為本地目錄涎永,該目錄下的存放PHP代碼,該目錄下的PHP代碼被掛載到容器內(nèi)的/usr/local/nginx/html目錄下;
(3)NGINX虛擬機(jī)配置文件,nginx連接php-fpm的fastcgi_param配置信息寫了一個(gè)配置文件
在/usr/local/nginx/conf/php_fcgi.conf;scgi_param配置信息寫了一個(gè)
配置文件/usr/local/nginx/conf/scgi_params羡微,php-fpm的地址為127.0.0.1:9000谷饿,示例如下:
    location ~\.php {
        include        php_fcgi.conf;
        include        pathinfo.conf;
    }

需要注意的是:根據(jù)/Users/php_code內(nèi)目錄層級(jí)的不同,改寫nginx 虛擬機(jī)配置文件的root根目錄妈倔。
舉例:本地/users/php_code目錄下git clone的代碼倉庫wdwd博投,那么wdwd目錄被掛載到了容器內(nèi)部的/usr/local/nginx/html下,
即/usr/local/nginx/html/wdwd,PHP的入口文件路徑為/usr/local/nginx/html/wdwd/myshop/Public启涯,所以NGINX虛擬機(jī)
的root 改寫為/usr/local/nginx/html/wdwd/myshop/Public

5.Mac系統(tǒng)安裝Docker Desktop

docker下載鏈接
在mac上面使用Docker掛載目錄時(shí),需要先在Docker->Preference->Resources->FILE SHARING中添加該目錄恃轩,才能進(jìn)行掛載结洼!
默認(rèn)FILE SHARING中已添加了/Users目錄,如上把php_code目錄和nginx_vhosts目錄創(chuàng)建在/Users目錄下面叉跛,如果docker run運(yùn)行提示失敗松忍,則對(duì)該兩個(gè)目錄進(jìn)行添加。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末筷厘,一起剝皮案震驚了整個(gè)濱河市鸣峭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌酥艳,老刑警劉巖摊溶,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異充石,居然都是意外死亡莫换,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門骤铃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拉岁,“玉大人,你說我怎么就攤上這事惰爬『芭” “怎么了?”我有些...
    開封第一講書人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵撕瞧,是天一觀的道長陵叽。 經(jīng)常有香客問我,道長丛版,這世上最難降的妖魔是什么咨跌? 我笑而不...
    開封第一講書人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮硼婿,結(jié)果婚禮上锌半,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好刊殉,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開白布殉摔。 她就那樣靜靜地躺著,像睡著了一般记焊。 火紅的嫁衣襯著肌膚如雪逸月。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,246評(píng)論 1 308
  • 那天遍膜,我揣著相機(jī)與錄音碗硬,去河邊找鬼。 笑死瓢颅,一個(gè)胖子當(dāng)著我的面吹牛恩尾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播挽懦,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼翰意,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了信柿?” 一聲冷哼從身側(cè)響起冀偶,我...
    開封第一講書人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎渔嚷,沒想到半個(gè)月后进鸠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡形病,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年堤如,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片窒朋。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡搀罢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出侥猩,到底是詐尸還是另有隱情榔至,我是刑警寧澤,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響媳叨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜枫弟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鹏往。 院中可真熱鬧淡诗,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至群凶,卻和暖如春插爹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背请梢。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來泰國打工赠尾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人毅弧。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓气嫁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親形真。 傳聞我的和親對(duì)象是個(gè)殘疾皇子杉编,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359