Docker 下安裝配置 lnmp 環境

woann發表於2019-01-04

前提:已經成功安裝Docker

建立mysql容器

執行以下命令建立容器

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=wqg951122 --name woann_mysql mysql:5.6

引數說明

  • -d 讓容器在後臺執行
  • -p 新增主機到容器的埠對映(hostPort:containerPort)
  • -e 設定環境變數,這裡是設定mysql的root使用者的初始密碼*
  • –name 容器的名字,隨便取,但是必須唯一

進入到容器(其他容器進入方法都是一樣的,替換容器名執行命令即可)

docker exec -ti woann_mysql /bin/bash

引數說明

  • -t 在容器裡生產一個偽終端
  • -i 對容器內的標準輸入 (STDIN) 進行互動

安裝vim(每個建立的容器都要執行此步驟,後續忽略)

剛建立的容器沒有安裝vim,所以要手動安裝,先執行

apt update

再執行

apt-get install vim

安裝完畢即可

建立php容器

執行以下命令建立容器

docker run -d -v /home/wwwroot:/home/wwwroot -p 9000:9000 --link woann_mysql:mysql --name woann_phpfpm php:7.2-fpm

引數說明

  • -d 讓容器在後臺執行
  • -p 新增主機到容器的埠對映
  • -v 新增目錄對映,即主機上的/home/wwwroot和容器中/home/wwwroot目錄是同步的
  • –name 容器的名字
  • –link 與另外一個容器建立起聯絡,這樣我們就可以在當前容器中去使用另一個容器裡的服務。
    這裡如果不指定–link引數其實也是可以得,因為容器本身也是有ip的且唯一,所以我們也可以直接利用ip去訪問容器。

    新增php測試檔案

    /home/wwwroot目錄下新增測試php檔案index.php
    內容:

    <?php
    phpinfo();

    建立nginx容器

    執行以下命令建立容器

    docker run -d -p 80:80  -v /home/wwwroot:/home/wwwroot --link woann_phpfpm:phpfpm --name woann_nginx nginx

    引數說明:

  • -d 讓容器在後臺執行
  • -p 新增主機到容器的埠對映
  • -v 新增目錄對映,這裡最好nginx容器的根目錄最好寫成和php容器中根目錄一樣。但是不一點非要一模一樣,如果不一樣在配置nginx的時候需要注意
  • –name 容器的名字
  • –link 與另外一個容器建立起聯絡

進入到nginx容器修改配置檔案

  • nginx配置檔案目錄在/etc/nginx/目錄下
  • 主配置檔案為/etc/nginx/nginx.conf
  • 引用配置檔案為/etc/nginx/conf.d/*.conf
  • nginx預設建立了一個引用配置檔案(/etc/nginx/conf.d/default.conf)
    執行
    vim /etc/nginx/conf.d/default.conf

    新增如下程式碼,讓nginx接收到php請求時自動轉發到phpfpm容器

    location ~ \.php$ {
        root           /home/wwwroot;
        fastcgi_pass   phpfpm:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    測試結果

    檢視剛才建立的所有容器

    docker ps

    該命令檢視所有正在執行的容器,如檢視所有,在命令後加-a
    如下圖所示

測試

用瀏覽器訪問http://127.0.0.1/index.php,即可看到phpinfo的資訊頁面。至此lnmp搭建完畢。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章