您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了如何使用Docker掛載資料卷部署Nginx,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶大家一起來研究并學(xué)習(xí)一下“如何使用Docker掛載資料卷部署Nginx”這篇文章吧。
nginx的作用有很多,比如正向代理、反向代理、負載均衡、透明代理等,一般情況下使用較多的是反向代理和負載均衡。這些操作只需要修改配置文件就可以完成,所以我們只需要將配置文件同步在本地即可。nginx配置文件的路徑是 etc/nginx/nginx.conf ,首先創(chuàng)建對應(yīng)目錄和文件:
nginx1目錄下的nginx.conf也要創(chuàng)建,內(nèi)容空著就行。接下來查看鏡像是否正常:
如果還沒有下載鏡像,使用以下命令拉取鏡像(默認最新版):
docker pull nginx
接下來運行容器:
docker run -itd -p 80:80 --name nginx001 -v /docker/nginx1/nginx.conf:/etc/nginx/nginx.conf nginx
解釋一下:
-itd:開啟交互模式,模擬終端,后臺運行
-p 80:80:對應(yīng)端口映射到宿主機
--name nginx001:自定義容器名稱
-v /docker/nginx1/nginx.conf:/etc/nginx/nginx.conf:將宿主機的對應(yīng)文件映射到nginx的配置文件
nginx:運行的鏡像名稱
運行以上命令以后,會返回隨機字符串代表容器創(chuàng)建成功:
查看運行中的容器:
沒有看到nginx001,肯定是運行的時候出錯了,我們來看一下錯誤信息:
大概意思是配置文件中沒有找到events節(jié)點。因為我們創(chuàng)建的文件內(nèi)容是空的,所以啟動容器的時候直接把對應(yīng)目錄下的nginx.conf給映射到nginx001里面的nginx.conf了,空配置的nginx當(dāng)然無法運行。
現(xiàn)在vi剛才本地創(chuàng)建好的nginx.conf,開始配置:
之前我在docker上部署了一個簡易的 .net core 程序,占用本地端口 1500 ,現(xiàn)在我把程序通過nginx反向代理到一個指定域名,并通過80端口訪問。配置文件寫好以后,重啟容器nginx001:
現(xiàn)在nginx001就成功啟動了,我們訪問一下剛才指定的域名:
nginx的配置已經(jīng)生效。
最后我們來嘗試一下docker重啟會不會導(dǎo)致配置初始化,重啟docker:
啟動兩個容器:
訪問頁面:
數(shù)據(jù)庫并沒有因為docker重啟而被初始化,證明資料卷已經(jīng)生效。以后再也不怕docker宕機而數(shù)據(jù)丟失了。
nginx配置文件中的 proxy_pass 屬性,非docker環(huán)境配置的時候,localhost或127.0.0.1是可以正常生效的,但是在docker下nginx容器配置localhost或127.0.0.1時,有一個小坑導(dǎo)致無法完成實際的反向代理。因為容器運行時,docker會給它分配單獨的ip和端口,然后把docker占用的ip映射到容器ip(比如docker下mysql啟動后,使用localhost可以登陸客戶端)。但nginx啟動時,會先讀取配置文件,配置正確的話才會運行,所以容器運行成功后,docker才把本地ip映射進去。如果配置文件寫的是localhost或127.0.0.1,那么只有直接訪問容器的ip才會觸發(fā)反向代理。所以如果在服務(wù)器使用docker配置nginx,直接輸入服務(wù)器ip即可完成配置。
以上就是關(guān)于“如何使用Docker掛載資料卷部署Nginx”的內(nèi)容,如果該文章對您有所幫助并覺得寫得不錯,勞請分享給您的好友一起學(xué)習(xí)新知識,若想了解更多相關(guān)知識內(nèi)容,請多多關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。