Docker 安裝 PHP

安裝 PHP 鏡像

方法一、docker pull php

查找Docker Hub上的php鏡像

runoob@runoob:~/php-fpm$ docker search php
NAME                      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
php                       While designed for web development, the PH...   1232      [OK]       
richarvey/nginx-php-fpm   Container running Nginx + PHP-FPM capable ...   207                  [OK]
phpmyadmin/phpmyadmin     A web interface for MySQL and MariaDB.          123                  [OK]
eboraas/apache-php        PHP5 on Apache (with SSL support), built o...   69                   [OK]
php-zendserver            Zend Server - the integrated PHP applicati...   69        [OK]       
million12/nginx-php       Nginx + PHP-FPM 5.5, 5.6, 7.0 (NG), CentOS...   67                   [OK]
webdevops/php-nginx       Nginx with PHP-FPM                              39                   [OK]
webdevops/php-apache      Apache with PHP-FPM (based on webdevops/php)    14                   [OK]
phpunit/phpunit           PHPUnit is a programmer-oriented testing f...   14                   [OK]
tetraweb/php              PHP 5.3, 5.4, 5.5, 5.6, 7.0 for CI and run...   12                   [OK]
webdevops/php             PHP (FPM and CLI) service container             10                   [OK]
...

這里我們拉取官方的鏡像,標(biāo)簽為5.6-fpm

runoob@runoob:~/php-fpm$ docker pull php:5.6-fpm

等待下載完成后顷扩,我們就可以在本地鏡像列表里查到REPOSITORY為php,標(biāo)簽為5.6-fpm的鏡像。

runoob@runoob:~/php-fpm$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
php                 5.6-fpm             025041cd3aa5        6 days ago          456.3 MB

Nginx + PHP 部署

Nginx 部署可以查看:Docker 安裝 Nginx浮声,一些 Nginx 的配置參考這篇文章怨咪。
啟動 PHP:

$ docker run --name  myphp-fpm -v ~/nginx/www:/www  -d php:5.6-fpm

命令說明:

  • --name myphp-fpm : 將容器命名為 myphp-fpm拭荤。
  • -v ~/nginx/www:/www : 將主機中項目的目錄 www 掛載到容器的 /www
    創(chuàng)建 ~/nginx/conf/conf.d 目錄:
mkdir ~/nginx/conf/conf.d

在該目錄下添加 ~/nginx/conf/conf.d/runoob-test-php.conf 文件僚饭,內(nèi)容如下:

server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        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;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /www/$fastcgi_script_name;
        include        fastcgi_params;
    }
}

配置文件說明:

  • php:9000: 表示 php-fpm 服務(wù)的 URL震叮,下面我們會具體說明。
  • /www/: 是 myphp-fpm 中 php 文件的存儲路徑鳍鸵,映射到本地的 ~/nginx/www 目錄苇瓣。
    啟動 nginx:
docker run --name runoob-php-nginx -p 8083:80 -d \
    -v ~/nginx/www:/usr/share/nginx/html:ro \
    -v ~/nginx/conf/conf.d:/etc/nginx/conf.d:ro \
    --link myphp-fpm:php \
    nginx
  • -p 8083:80: 端口映射,把 nginx 中的 80 映射到本地的 8083 端口偿乖。
  • ~/nginx/www: 是本地 html 文件的存儲目錄钓简,/usr/share/nginx/html 是容器內(nèi) html 文件的存儲目錄。
  • ~/nginx/conf/conf.d: 是本地 nginx 配置文件的存儲目錄汹想,/etc/nginx/conf.d 是容器內(nèi) nginx 配置文件的存儲目錄。
  • --link myphp-fpm:php: 把 myphp-fpm 的網(wǎng)絡(luò)并入 nginx撤蚊,并通過修改 nginx 的 /etc/hosts古掏,把域名 php 映射成 127.0.0.1,讓 nginx 通過 php:9000 訪問 php-fpm侦啸。
    接下來我們在 ~/nginx/www 目錄下創(chuàng)建 index.php槽唾,代碼如下:
<?php
echo phpinfo();
?>

瀏覽器打開 http://127.0.0.1:8083/index.php,顯示如下:

image

Docker 安裝 Nginx
Docker 安裝 MySQL

1 篇筆記 寫筆記

  1. pengqiangsheng
    參考地址
    Docker 配置 nginx光涂、php-fpm庞萍、mysql
    運行環(huán)境
    image

    創(chuàng)建目錄
mkdir -p /Users/sui/docker/nginx/conf.d && mkdir /Users/sui/www &&  cd /Users/sui/docker/nginx/conf.d && sudo touch default.conf

啟動 php-fpm
解釋執(zhí)行 php 需要 php-fpm,先讓它運行起來:

docker run --name sui-php -d \
        -v /Users/sui/www:/var/www/html:ro \
        php:7.1-fpm

--name sui-php 是容器的名字忘闻。
/Users/sui/www 是本地 php 文件的存儲目錄钝计,/var/www/html 是容器內(nèi) php 文件的存儲目錄,ro 表示只讀。
編輯 nginx 配置文件
配置文件位置:/Users/sui/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 服務(wù)的訪問路徑债沮,下文還會提及。
  • /var/www/html 是 sui-php 中 php 文件的存儲路徑本鸣,經(jīng) docker 映射疫衩,變成本地路徑 /Users/sui/www(可以再看一眼 php-fpm 啟動命令
    啟動 nginx:
docker run --name sui-nginx -p 80:80 -d \
        -v /Users/sui/www:/usr/share/nginx/html:ro \
        -v /Users/sui/docker/nginx/conf.d:/etc/nginx/conf.d:ro \
        --link sui-php:php \
        nginx
*   -p 80:80 用于添加端口映射,把 ***sui-nginx*** 中的 80 端口暴露出來荣德。
*   /Users/sui/www 是本地 html 文件的存儲目錄闷煤,/usr/share/nginx/html 是容器內(nèi) html 文件的存儲目錄。
*   /Users/sui/docker/nginx/conf.d 是本地 nginx 配置文件的存儲目錄涮瞻,/etc/nginx/conf.d 是容器內(nèi) nginx 配置文件的存儲目錄鲤拿。
*   --link sui-php:php 把 ***sui-php*** 的網(wǎng)絡(luò)并入 ***sui-nginx***,并通過修改 ***sui-nginx*** 的 /etc/hosts饲宛,把域名 ***php*** 映射成 127.0.0.1皆愉,讓 nginx 通過 php:9000 訪問 php-fpm。
![image](https://upload-images.jianshu.io/upload_images/16861561-d575907d6d1d5ec9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
**測試結(jié)果**
在 /Users/sui/www 下放兩個文件:index.html index.php
![image](https://upload-images.jianshu.io/upload_images/16861561-733fdaea8cd51ac1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
**mysql 和 phpmyadmin**
mysql 服務(wù)器
sudo mkdir -p /Users/sui/docker/mysql/data /Users/sui/docker/mysql/logs /Users/sui/docker/mysql/conf
*   data 目錄將映射為 mysql 容器配置的數(shù)據(jù)文件存放路徑
*   logs 目錄將映射為 mysql 容器的日志目錄
*   conf 目錄里的配置文件將映射為 mysql 容器的配置文件
docker run -p 3307:3306 --name sui-mysql -v /Users/sui/docker/mysql/conf:/etc/mysql -v /Users/sui/docker/mysql/logs:/logs -v /Users/sui/docker/mysql/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d --link sui-php mysql

進(jìn)入mysql客戶端:

docker run -it --link sui-mysql:mysql --rm mysql sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'

注意:我本地 3306 端口有 mysql, 所以這里用3307端口艇抠。

image

phpmyadmin

docker run --name sui-myadmin -d --link sui-mysql:db -p 8080:80 phpmyadmin/phpmyadmin

image

大功告成:
image

pengqiangsheng
參考地址 9個月前 (08-31)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末幕庐,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子家淤,更是在濱河造成了極大的恐慌异剥,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件絮重,死亡現(xiàn)場離奇詭異冤寿,居然都是意外死亡,警方通過查閱死者的電腦和手機青伤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門督怜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人狠角,你說我怎么就攤上這事号杠。” “怎么了丰歌?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵姨蟋,是天一觀的道長。 經(jīng)常有香客問我立帖,道長眼溶,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任晓勇,我火速辦了婚禮堂飞,結(jié)果婚禮上灌旧,老公的妹妹穿的比我還像新娘。我一直安慰自己酝静,他們只是感情好节榜,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著别智,像睡著了一般宗苍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上薄榛,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天讳窟,我揣著相機與錄音,去河邊找鬼敞恋。 笑死丽啡,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的硬猫。 我是一名探鬼主播补箍,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼啸蜜!你這毒婦竟也來了坑雅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤衬横,失蹤者是張志新(化名)和其女友劉穎裹粤,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜂林,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡遥诉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了噪叙。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片矮锈。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖睁蕾,靈堂內(nèi)的尸體忽然破棺而出苞笨,到底是詐尸還是另有隱情,我是刑警寧澤惫霸,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站葱弟,受9級特大地震影響壹店,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜芝加,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一硅卢、第九天 我趴在偏房一處隱蔽的房頂上張望射窒。 院中可真熱鬧,春花似錦将塑、人聲如沸脉顿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽艾疟。三九已至,卻和暖如春敢辩,著一層夾襖步出監(jiān)牢的瞬間蔽莱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工戚长, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留盗冷,地道東北人。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓同廉,卻偏偏與公主長得像仪糖,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子迫肖,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容