佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > docker容器內(nèi)網(wǎng)絡(luò)請求緩慢問題解決

docker容器內(nèi)網(wǎng)絡(luò)請求緩慢問題解決

熱門標(biāo)簽:智能手機(jī) 網(wǎng)站建設(shè) 美圖手機(jī) 檢查注冊表項(xiàng) 使用U盤裝系統(tǒng) 阿里云 硅谷的囚徒呼叫中心 百度競價點(diǎn)擊價格的計算公式

在使用docker的過程中發(fā)現(xiàn)了幾個問題,在docker里進(jìn)行的網(wǎng)絡(luò)請求經(jīng)常會失敗,比如npm install以及bundle install等操作,或者是作為中間層在應(yīng)用中去獲取api數(shù)據(jù)的過程經(jīng)常會出現(xiàn)timeout等情況,所以開始探究docker的網(wǎng)絡(luò)機(jī)制,以解決網(wǎng)絡(luò)請求太慢的問題。

一、docker的網(wǎng)絡(luò)模式

1、none

當(dāng)配置為none時,docker容器網(wǎng)絡(luò)無法輸入輸出,與世隔絕。

2、bridge
默認(rèn)為bridge模式,docker有自己的虛擬網(wǎng)卡,通過橋接的方式從主機(jī)獲得網(wǎng)絡(luò)。

3、host
當(dāng)指定為host時,主機(jī)的網(wǎng)卡直接暴露給了容器,直接通過主機(jī)的網(wǎng)絡(luò)上網(wǎng),比如要拿主機(jī)上的redis服務(wù)127.0.0.1:6357,就得通過這種方法,不過就比較不安全了。

4、container
使用其他容器的網(wǎng)絡(luò)

二、docker的dns解析

docker容器本質(zhì)上也是個linux,所以dns的解析方法和linux一樣,優(yōu)先是找/etc/hosts文件,像localhost這種域名就是寫在這個文件里,比如:

127.0.0.1 localhost

如果docker容器link了其他容器,這里也會多出link的域名,比如:

docker run --name app --link app-redis:redis -d ubuntu

就會在hosts里多出

172.17.0.3 app-redis 038c8388e4a1

找完/etc/hosts文件,然后是/etc/resolv.conf文件:

domain local
nameserver 192.168.65.1
nameserver 192.168.65.10

三、解決docker容器里網(wǎng)絡(luò)請求慢的問題

經(jīng)過抓包測試等分析,發(fā)現(xiàn)網(wǎng)絡(luò)請求慢,主要發(fā)生在dns解析中,所以主要采取dns優(yōu)化:

如果請求的是自己內(nèi)網(wǎng)的api, 可以直接修改/etc/hosts文件,如果是外網(wǎng)的請求可以通過更改/etc/resolv.conf里的nameserver實(shí)現(xiàn)。

docker容器肯定不是直接通過修改文件實(shí)現(xiàn)的,可以通過run的命令實(shí)現(xiàn):

# 添加host
docker run --name app --add-host='api.embbnux.com:10.98.10.98' -d ubuntu
# 指定dns server
docker run --name app --dns=223.5.5.5 --dns=8.8.8.8 -d ubuntu

這樣在docker容器里dns解析階段的時間就被加速了

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:煙臺 黃山 賀州 通遼 山南 湘潭 湖北 懷化

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《docker容器內(nèi)網(wǎng)絡(luò)請求緩慢問題解決》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    信阳市| 合山市| 黎川县| 永清县| 镇原县| 昭平县| 宝丰县| 鄂伦春自治旗| 射洪县| 金湖县| 绍兴县| 乐昌市| 徐州市| 饶平县| 潞城市| 临武县| 静宁县| 文登市| 普宁市| 德江县| 永善县| 卢龙县| 清原| 彝良县| 云龙县| 兰考县| 永顺县| 茌平县| 广东省| 江西省| 安陆市| 金寨县| 大安市| 元阳县| 潜山县| 大名县| 滦南县| 肇州县| 军事| 桐庐县| 商城县|