前提:已經成功安裝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 協議》,轉載必須註明作者和本文連結