安裝 nginx
1 檢視可用版本
docker search nginx
2 獲取nginx映象
docker pull nginx[:版本]
3 檢視本地映象
docker images
4 執行容器
docker run --name my-nginx -p 81:80 -d nginx
引數說明:
--name my-nginx:容器名稱命名為my-nginx
-p 81:80:埠進行對映,將本地81埠對映到容器內部的80埠 [左邊本地:右邊容器]
-d nginx:設定容器在後台一直執行
5 安裝成功
docker ps
6 測試
瀏覽器訪問:127.0.0.1:81
安裝 php
1 檢視可用版本
docker search php
2 安裝映象
docker pull php[:版本]
3 檢視本地映象
docker images
4 執行容器
docker run -p 9000:9000 --name my-php -v ~/nginx/www:/usr/share/nginx/html:ro -v ~/nginx/php-log:/usr/local/var/log -itd php:7.1-fpm
引數說明:
--name my-php:容器名稱命名為my-php
-p 9000:9000:埠進行對映,將本地81埠對映到容器內部的80埠
-v ~/nginx/www:/usr/share/nginx/html:掛載,將主機專案中的目錄掛載到容器的/usr/share/nginx/html
-it:引數互動執行
-d:引數後台執行
ro:唯讀許可權
注意:docker機制,docker容器執行必須有乙個前台程序,如果沒有前台程序執行,容器認為空閒就會自行退出。
常規後台執行php,一執行會立馬退出,所以加入-it引數。
5 安裝成功
docker ps
安裝 mysql
1 檢視可用版本
docker search mysql
2 拉取mysql映象
docker pull mysql[:版本]
3 檢視本地映象
docker images
4 執行容器
docker run -itd --name my-mysql -p 3306:3306 -e mysql_root_password=root mysql
引數說明:
-itd:後台互動執行
--name my-mysql:容器名稱命名為
-p 3306:3306:對映容器服務的3306埠到宿主機的3306
-e mysql_root_password:設定容器內環境變數,root的使用者密碼為root
5 安裝成功
docker ps
6 測試
6.1 進入容器
docker exec -it [容器名稱|容器id] bash
6.2 進入mysql
mysql -h localhost -u root -p
php+mysql部署
1 啟動php+mysql容器
docker run --name php-mysql -p 9002:9000 -v ~/nginx/www:/usr/share/nginx/html:ro -v ~/nginx/php-log:/usr/local/var/log --link my-mysql:mysql -itd php:7.1-fpm
引數說明:
--name php-mysql:容器名稱命名為php-mysql
-p 9002:9000:埠對映,將本地9002埠對映到容器內部的9000埠
-v :掛載,將主機專案中的目錄掛載到容器的/usr/share/nginx/html,將nginx配置檔案掛載到/etc/nginx/conf.d,將nginx日誌檔案掛載到/var/log/nginx
2 安裝成功
docker ps
注意:如果mysql版本是8.0以上,需要做一些調整
常見問題:
nginx+php部署
1 建立核心資料夾方便後續將容器內檔案對映到本地,以便檢視/修改
mkdir ~/nginx/nginx-conf ~/nginx/nginx-log ~/nginx/php-conf ~/nginx/php-log ~/nginx/www
2 複製php以及nginx的配置和日誌檔案到本地
2.1 複製php的配置檔案
docker cp my-php:/usr/local/etc ~/nginx/php-conf
2.2 複製php的日誌
docker cp my-php:/usr/local/var/log ~/nginx/php-log
2.3 複製nginx的配置檔案
docker cp my-nginx:/etc/nginx/conf ~/nginx/nginx-conf
2.4 建立nginx的日誌檔案
touch ~/nginx/nginx-log/error.log ~/nginx/nginx-log/access.log
注意:複製出來的目錄可能多一級,把配置檔案全部複製到根目錄下
3 重新執行啟動nginx容器
docker run --name php-nginx -p 82:80 -d -v ~/nginx/www:/usr/share/nginx/html -v ~/nginx/nginx-conf/conf.d:/etc/nginx/conf.d -v ~/nginx/nginx-log:/var/log/nginx --link php-mysql:php -d nginx
引數說明:
--name php-nginx:容器名稱命名為php-nginx
-p 82:80:埠對映,將本地82埠對映到容器內部的80埠
-v :掛載,將主機專案中的目錄掛載到容器的/usr/share/nginx/html,將nginx配置檔案掛載到/etc/nginx/conf.d,將nginx日誌檔案掛載到/var/log/nginx
4 安裝成功
docker ps
5 測試
127.0.0.1:82
6 修改本地配置檔案解析php檔案
配置檔案中需要將解析php的註解去掉,修改root路徑
注意:核心是php配置檔案的fastcgi_pass和fastcgi_param,如果這兩個引數錯誤,會導致php的**無法解析
常見問題:
docker 搭建 lnmp 環境
這幾天學了 docker 又用 docker 搭建了自己的環境。這中間遇到了很多坑,為此特意寫此博文,供你們搭建環境的時候借鑑。本篇本章預設你有 docker 的基本知識 本篇用到的環境 實踐 搭建 dockerfile 首先我們編寫我們的 dockerfile mysql from mysql 5...
Docker搭建LNMP環境
關於什麼是docker,建議大家先上網查查有關的用法。如果您不了解,在這篇文章中,您可以簡單的理解為他是乙個輕量級的虛擬機器。一 docker安裝mysql 首先,我們從倉庫拉取乙個mysql的映象 docker pull mysql 5.6然後我們可以通過命令 docker images 檢視我們...
docker搭建lnmp環境
四 參考 有收穫的話請加顆小星星,沒有收穫的話可以反對沒有幫助舉報三連 from 指定基礎映象 from 映象 from php 7.2 fpm run 執行 run 命令 orrun 可執行檔案 引數1 引數2 run echo usr share nginx html index.html ru...