Docker如何快速搭建LNMP環境(最新)
前言
提示:這裡可以添加本文要記錄的大概內容:
例如:隨著人工智能的不斷發展,機器學習這門技術也越來越重要,很多人都開啟瞭學習機器學習,本文就介紹瞭機器學習的基礎內容。
提示:以下是本篇文章正文內容,下面案例可供參考
一、Mysql?
1.拉取mysql鏡像
docker pull mysql:5.6
2.運行啟動mysql容器
docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=xy123456 --name xy_mysql mysql:5.6
參數說明:
-d 讓容器在後臺運動
-p 添加主機到容器的端口映射
-e 設置mysql環境變量,設置root的初始密碼
–name 給容器取名字
最後一個參數是鏡像名稱,為拉取鏡像的名稱
二、安裝php-fpm
1.拉取php-fpm鏡像
docker pull php:7.0-fpm
也可拉docker pull php:7.4.20-fpm docker pull php:7.3.28-fpm 這些版本在倉庫裡都是存在,放心拉
2.運行啟動php-fpm容器
docker run -d -v D:/docker/nginx:/var/www/html -p 9000:9000 --link xy_mysql:mysql --name xy_phpfpm php:7.0-fpm
參數說明:
-d 讓容器在後臺運動
-p 添加主機到容器的端口映射
-v 添加目錄映射,主機上的D:/docker/nginx映射到/var/www/html ,即同步目錄下內容.’D:/docker/nginx’這個主機下的目錄你直接復制你想要
寫代碼的目錄即可,$PWD如果有效的話是指當前目錄,我是因為使用此參數報錯,所以直接復制粘貼瞭路徑.
–name 給容器取名字
–link 與另外一個容器建立聯系,這樣可以在當前容器去使用另一個容器的服務
最後一個參數是鏡像名稱,為拉取鏡像的名稱
3.進入php-fpm容器
docker exec -it xy_phpfpm bash
參數說明
-t 在容器裡生產一個偽終端
-i 對容器內的標準輸入 (STDIN) 進行交互
在/var/www/html/下創建一個index.php文件後,你會發現本地也會有,這就同步瞭,因為啟動容器時已經把主機和容器相應的目錄進行
映射瞭;
4.安裝pdo_mysql模塊
因之後要使用pdo模塊進行測試,所以安裝pdo_mysql模塊.
docker-php-ext-install pdo_mysql
php -m 打印查看是否安裝成功;
這樣安裝之後在phpinfo()打印後不一定會顯示擴展,之後測試會有修改的步驟
三、安裝nginx
1.拉取nginx鏡像
docker pull nginx:1.10.3
2.運行nginx容器
docker run -d -p 80:80 -v D:/docker/nginx:/var/www/html --link xy_phpfpm:phpfpm --name xy_nginx nginx:1.10.3
3.進入nginx容器,修改nginx配置文件讓他支持php
docker exec -it xy_nginx bash
這裡推薦去 /etc/nginx/conf.d/default.conf下去更改;
fastcgi_pass 寫php:7.0-fpm:9000 別寫起的別名可能會失效;
root寫成之前php容器設置的代碼目錄;
4.測試安裝是否成功
修改index.php代碼
<?php phpinfo();
這個在使用之前安裝的命令之後phpinfo()並沒有mysql,需要進入php.ini中去更改
5.修改配置
docker exec -it xy_phpfpm bash
這個容器中php.ini 在/usr/local/etc/php下 php.ini-development php.ini-production
這兩個文件就是php.ini 文件是一模一樣 看名字就知道什麼意思瞭
把extension=php_pdo_mysql.dll擴展放開就可以
6.鏈接mysql測試
修改index.php代碼
try { $con = new PDO('mysql:host=xy_mysql;dbname=mysql', 'root', 'xy123456'); $con->query('SET NAMES UTF8'); $res = $con->query('select * from user'); while ($row = $res->fetch(PDO::FETCH_ASSOC)) { // echo "id:{$row['id']} name:{$row['name']}"; print_r($row); } } catch (PDOException $e) { echo '錯誤原因:' . $e->getMessage(); }
如果沒報錯,則為成功
總結
成功則初級環境搭建就ok瞭,整個過程搭建要細心,在配置文件的時候多查資料
以上就是Docker搭建LNMP環境 的詳細內容,更多關於Docker搭建LNMP環境的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- Docker安裝LNMP環境的詳細過程(可部署TP項目)
- Docker部署nginx+php環境的全過程(簡單可用!)
- 使用docker部署django的詳細步驟
- Docker部署單頁應用的詳細操作
- Docker快速搭建PHP+Nginx+Mysql環境及踩坑