docker安裝nginx并部署前端項目的全過程
1.簡介
本文主要介紹如何使用docker安裝nginx,以及如何將前端打包好的vue項目部署到nginx上。
2.操作
(1)拉取nginx鏡像:
docker pull nginx
(2)咱們先把docker鏡像跑起來:
docker run --name myNginx -p 80:80 -v /home/nginx/dist:/usr/share/nginx/html -d nginx ## --name:容器名字 ## -d: 要啟動的鏡像的名字 ## -v: /home/nginx/dist 這是宿主機(服務(wù)器)中的目錄映射到nignx容器中的/usr/share/nginx/html中;
其實最讓人費解的就是-v這個東西,其實就是docker的文件映射。我自己的理解就是將宿主機與nginx鏡像中的目錄映射關(guān)聯(lián)起來,這樣的效果就是nginx鏡像中的目錄下的文件發(fā)生了什么變化,與之映射的宿主機的目錄也會隨之變化,同理,當(dāng)宿主機中的映射目錄下的文件發(fā)生變化,與之對應(yīng)的nginx鏡像中的映射目錄也會有同樣的變化,二者的內(nèi)容是保持一樣了,這樣的好處就是我們以后想改某個容器的配置文件的時候,不用再進入到容器內(nèi)部去改了,咱直接在宿主機上改即可。
(3)上一步啟動容器的目的是想把容器中的一些目錄先拷貝到宿主中,上一個啟動命令并不是終極版的啟動命令,咱們還需要把nginx容器中的配置文件所在的目錄下的文件內(nèi)容拷貝到宿主機中,讓這兩個目錄的原始內(nèi)容先保持一致,廢話不多說,請看命令:
docker cp 容器id:/etc/nginx /home/etc
咱們把nginx容器中的/etc/nginx下的內(nèi)容拷貝到宿主機的/home/etc文件中,如果同學(xué)你的/home里面沒有etc這個文件夾,可以提前建一個再來拷貝。
(4)好好好,這個nginx容器我已經(jīng)利用完了,現(xiàn)在是時候拋棄它了,因為咱們的終極版nginx容器是不需要它了,運行下面的命令來把這個nginx容器干掉(我真無情~哈哈):
docker rm 容器id
(5)做完上面的無情第四步之后,接下來是最重要的一步,我們要啟動nginx鏡像。
docker run --name myNginx -p 80:80 -v /home/nginx/dist:/usr/share/nginx/html -v /home/etc/nginx:/etc/nginx -d 鏡像的id或者名字
解釋:啟動鏡像的時候,最重要的就是做好文件映射,這里有兩個地方我們需要映射的,一個是nginx鏡像中的:/usr/share/nginx/html,這個目錄是用于放具體的vue前端項目的嘛,我們就用將它映射到宿主機(你的服務(wù)器)中的這個目錄: /home/nginx/dist;還有一個是nginx鏡像中的: /etc/nginx,這個目錄里面有nginx的配置文件,咱們映射到宿主機:/home/etc/nginx里面。映射了這個目錄以后,修改nginx的配置文件就可以不用再到容器里面了,可以直接到宿主機的/home/etc/nginx里面去修改nginx的配置文件。
(6)咱們繼續(xù)看看怎么到宿主機上修改nginx的配置文件:
cd /home/etc/nginx/conf.d
到這個目錄下,我們可以看到一個: default.conf,是的,就是它,這個文件就是配置nginx的關(guān)鍵文件。
然后就是咱們build的前端項目只要上傳到宿主機中的: /home/nginx/dist里面即可,就像下面這樣。
最后咱們可以重啟一下nginx容器,看看有沒有生效。訪問地址是:你的ip地址:80
3. 總結(jié)
廢話很多,最重要的就是要想提醒同學(xué)們要注意docker的文件映射,尤其docker的啟動命令中,不要看到很長就懶得仔細看,一股腦就復(fù)制到服務(wù)器上執(zhí)行。好了,以上就是我的分享,如果有問題咱們評論區(qū)見~
到此這篇關(guān)于docker安裝nginx并部署前端項目的文章就介紹到這了,更多相關(guān)docker安裝nginx部署項目內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解如何使用Docker部署Django+MySQL8開發(fā)環(huán)境
這篇文章主要介紹了詳解如何使用Docker部署Django+MySQL8開發(fā)環(huán)境,文中通過示例代碼以及圖文介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07docker靈活的構(gòu)建PHP環(huán)境的實現(xiàn)
這篇文章主要介紹了docker靈活的構(gòu)建PHP環(huán)境的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12解決docker啟動失敗Failed?to?start?containerd?container?runtim
這篇文章主要介紹了解決docker啟動失敗Failed?to?start?containerd?container?runtime問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05如何利用Docker容器實現(xiàn)代理轉(zhuǎn)發(fā)與數(shù)據(jù)備份詳解
這篇文章主要給大家介紹了關(guān)于如何利用Docker容器實現(xiàn)代理轉(zhuǎn)發(fā)與數(shù)據(jù)備份的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10