docker搭建lnmp環境

2021-10-11 01:51:52 字數 3503 閱讀 2072

安裝 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...