前言
成都創(chuàng)新互聯(lián)公司是少有的網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、營(yíng)銷(xiāo)型企業(yè)網(wǎng)站、小程序開(kāi)發(fā)、手機(jī)APP,開(kāi)發(fā)、制作、設(shè)計(jì)、買(mǎi)友情鏈接、推廣優(yōu)化一站式服務(wù)網(wǎng)絡(luò)公司,從2013年成立,堅(jiān)持透明化,價(jià)格低,無(wú)套路經(jīng)營(yíng)理念。讓網(wǎng)頁(yè)驚喜每一位訪客多年來(lái)深受用戶好評(píng)我們將應(yīng)用以Docker容器的方式部署到服務(wù)器上的時(shí)候,通常需要考慮兩個(gè)方面的的問(wèn)題:網(wǎng)絡(luò)和存儲(chǔ)。
網(wǎng)絡(luò)方面,有些應(yīng)用需要占用端口,而其中一部分應(yīng)用甚至需要對(duì)外提供訪問(wèn)。
出于安全方面考慮,代理轉(zhuǎn)發(fā)方式相對(duì)于直接開(kāi)放防火墻端口方式更為合適。
存儲(chǔ)方面,由于容器內(nèi)部并不適合做數(shù)據(jù)持久化,所以一般通過(guò)掛載卷的方式將數(shù)據(jù)保存在服務(wù)器磁盤(pán)上。
但是服務(wù)器也不能保證絕對(duì)安全,所以數(shù)據(jù)也需要備份到云上。
代理轉(zhuǎn)發(fā)
默認(rèn)情況下容器之間的網(wǎng)絡(luò)是互相隔離的,但是對(duì)于一些有關(guān)聯(lián)的應(yīng)用而言(web前端容器和服務(wù)端容器以及數(shù)據(jù)庫(kù)容器),一般會(huì)把它們劃分到一個(gè)獨(dú)立的橋接子網(wǎng)絡(luò)(以下簡(jiǎn)稱子網(wǎng)),使得這些容器之間可以相互通信,但同時(shí)又與外部進(jìn)行隔離。
對(duì)于需要對(duì)子網(wǎng)外部提供訪問(wèn)的容器,可以將端口映射到服務(wù)器主機(jī)上。整個(gè)結(jié)構(gòu)大致如下:
上面的端口映射只解決了服務(wù)器(宿主機(jī))訪問(wèn)容器網(wǎng)絡(luò)服務(wù)的問(wèn)題,如果我們要從本地機(jī)器上通過(guò)因特網(wǎng)訪問(wèn)服務(wù)器上的容器,一般是不行的,因?yàn)榉?wù)器除了安全考慮,默認(rèn)情況下會(huì)啟用防火墻,并只開(kāi)放22等少數(shù)幾個(gè)端口。
對(duì)于傳統(tǒng)的網(wǎng)絡(luò)進(jìn)程,實(shí)現(xiàn)方式就是通過(guò)反向代理服務(wù)器來(lái)對(duì)網(wǎng)絡(luò)請(qǐng)求進(jìn)行轉(zhuǎn)發(fā),比如使用Nginx配置如下代理:
# 針對(duì)不同路徑進(jìn)行轉(zhuǎn)發(fā) server { listen 80; server_name www.xx.com; location /a { proxy_pass localhost:1234; } location /b { proxy_pass localhost:2234; } } # 針對(duì)不同域名進(jìn)行轉(zhuǎn)發(fā) server { listen 80; server_name www.yy.com; location / { proxy_pass localhost:1234; } }