最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一次centos Docker網(wǎng)橋模式無(wú)法訪問(wèn)宿主機(jī)Redis服務(wù)的故障排除經(jīng)歷

 更新時(shí)間:2019年10月10日 08:32:14   作者:nodotnet  
這篇文章主要給大家介紹了關(guān)于一次centos Docker網(wǎng)橋模式無(wú)法訪問(wèn)宿主機(jī)Redis服務(wù)的故障排除經(jīng)歷,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Docker具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

背景:

之前做了一個(gè)項(xiàng)目,需要在容器內(nèi)訪問(wèn)宿主機(jī)提供的Redis 服務(wù)(這是一個(gè)比較常見(jiàn)的應(yīng)用場(chǎng)景哈), 常規(guī)方案:

① 主機(jī)網(wǎng)絡(luò)(docker run --network=host): 完全應(yīng)用主機(jī)網(wǎng)絡(luò)堆棧,在容器內(nèi)localhost就是指向宿主機(jī)

② 網(wǎng)橋網(wǎng)絡(luò)(docker run --network=bridge): 這也是docker容器默認(rèn)的網(wǎng)絡(luò)通信模式,容器內(nèi)localhost 指向的是容器自身,不能使用 localhost 訪問(wèn)宿主機(jī)上localhost:6379承載的Redis服務(wù) 。

docker會(huì)默認(rèn)建立docker0 網(wǎng)橋;

網(wǎng)橋有一個(gè)網(wǎng)關(guān)ip, 有一個(gè)子網(wǎng)段; 網(wǎng)橋內(nèi)容器從子網(wǎng)段中確定容器ip( ip addr eth0), 網(wǎng)橋內(nèi)容器可通過(guò) service name相互訪問(wèn);

網(wǎng)橋內(nèi)容器通過(guò) docker0 Getway得以訪問(wèn)外網(wǎng)。

不做騷操作,沿用常見(jiàn)的②網(wǎng)橋模式:

第一步:自定義網(wǎng)橋并應(yīng)用該自定義網(wǎng)橋

docker network create --gateway 172.16.1.1 --subnet 172.16.1.0/24 app_bridge
docker run --network=app_bridge --name ......

# 以下截取自docker-compose.yml文件
......
networks:
 default:
 name: app_bridge
 external: true

為啥不利用默認(rèn)docker0網(wǎng)橋?

本文開(kāi)頭已講: docker0 是默認(rèn)網(wǎng)橋,新建的容器默認(rèn)都會(huì)加入這個(gè)網(wǎng)橋,所以我們需要建立一個(gè)專屬于本程序的網(wǎng)橋app_bridge

第二步:容器內(nèi)建立 對(duì)應(yīng)于宿主機(jī)的別名

為實(shí)現(xiàn)在容器內(nèi)網(wǎng)橋模式訪問(wèn)宿主機(jī)localhost:6379 的服務(wù), 必須搭配docker 提供的 --add-host 選項(xiàng)(對(duì)應(yīng)到docker-compose.yml這個(gè)配置是extra_host)。

docker run 的--add-host 選項(xiàng)能在 容器 /etc/hosts 文件增加行記錄,便于我們使用該名稱訪問(wèn)其他網(wǎng)絡(luò)。

docker run -it --add-host dockerhost:172.16.1.1 ubuntu cat /etc/hosts
172.17.0.22 09d03f76bf2c
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
172.16.1.1 dockerhost

之后在程序的配置文件即可應(yīng)用 dockerhost:6379 訪問(wèn)宿主機(jī)Redis服務(wù)。

------------------------------------------ 稍熟悉docker網(wǎng)絡(luò)模型的朋友應(yīng)該 都能理解并完成上述操作-----------------------------------------------------

一個(gè)狀況:

我在公司CentOS7機(jī)器上使用上述操作, 容器內(nèi)一直無(wú)法連通宿主機(jī)(容器間還是能正常訪問(wèn))。

簡(jiǎn)化問(wèn)題測(cè)試:新建容器,在容器內(nèi)嘗試ping docker0 網(wǎng)關(guān), 嗶了狗了,4臺(tái)公司機(jī)器都ping不通docker0網(wǎng)關(guān),外網(wǎng)還是正常訪問(wèn)。

那這個(gè)問(wèn)題就成了: 使用默認(rèn)的docker0網(wǎng)橋,容器內(nèi)無(wú)法ping通docker0網(wǎng)關(guān),進(jìn)而無(wú)法訪問(wèn)宿主機(jī)。

呀呀呀呀, 八成是公司機(jī)器的配置問(wèn)題 ~。。~

追問(wèn)公司運(yùn)維同學(xué),發(fā)現(xiàn):

Chain INPUT (policy DROP)

以上INPUT鏈的缺省策略是丟棄:從容器內(nèi)訪問(wèn)宿主機(jī)的INPUT鏈規(guī)則并不匹配其中列出的任意一條,將被丟棄,所以我們從容器ping docker0網(wǎng)關(guān)會(huì)卡住收不到結(jié)果。

除非滿足列出的INPUT鏈規(guī)則,否則缺省的策略就是丟棄。

后面還有轉(zhuǎn)發(fā)和OUTPUT鏈缺省是 接受

這個(gè)策略的初衷是 服務(wù)器安全(尼瑪, 導(dǎo)致容器訪問(wèn)宿主機(jī)的基礎(chǔ)能力都沒(méi)有了?。。。?/p>

運(yùn)維方案:

① 使用 sudo service iptables stop 關(guān)閉iptables

② 把要使用的網(wǎng)橋網(wǎng)段加入 INPUT鏈

sudo iptables -I INPUT -s 172.17.0.0/16 -j ACCEPT

【接受docker0子網(wǎng)段172.17.0.0/16 INPUT】 加入規(guī)則, 傳送門(mén)

OK, That‘s All, 以后若有朋友在公司網(wǎng)絡(luò)遇到 默認(rèn)網(wǎng)橋容器內(nèi)無(wú)法ping通網(wǎng)橋網(wǎng)關(guān),進(jìn)而無(wú)法訪問(wèn)宿主機(jī),可參考本文排障。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • docker運(yùn)行nginx容器并掛載數(shù)據(jù)卷

    docker運(yùn)行nginx容器并掛載數(shù)據(jù)卷

    本文主要介紹了docker運(yùn)行nginx容器,并通過(guò)掛載目錄將容器與宿主機(jī)的數(shù)據(jù)進(jìn)行共享和統(tǒng)一管理,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-03-03
  • Docker在Windows系統(tǒng)中的安裝和使用方法詳解

    Docker在Windows系統(tǒng)中的安裝和使用方法詳解

    這篇文章主要給大家介紹了關(guān)于Docker在Windows系統(tǒng)中的安裝和使用方法,Docker允許開(kāi)發(fā)中將應(yīng)用、依賴、函數(shù)庫(kù)、配置一起打包,形成可移植鏡像Docker應(yīng)用運(yùn)行在容器中,需要的朋友可以參考下
    2023-09-09
  • 創(chuàng)建Web項(xiàng)目的Docker鏡像實(shí)例講解

    創(chuàng)建Web項(xiàng)目的Docker鏡像實(shí)例講解

    這篇文章主要介紹了創(chuàng)建Web項(xiàng)目的Docker鏡像實(shí)例講解的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • ubuntu17.10安裝docker-ce的方法

    ubuntu17.10安裝docker-ce的方法

    本篇文章主要介紹了ubuntu 17.10 安裝docker-ce的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • 詳解mac下通過(guò)docker搭建LEMP環(huán)境

    詳解mac下通過(guò)docker搭建LEMP環(huán)境

    本篇文章主要介紹了詳解mac下通過(guò)docker搭建LEMP環(huán)境,詳細(xì)介紹了nginx,mysql,php的安裝配置,有興趣的可以來(lái)了解一下。
    2017-03-03
  • Docker下redis的主從配置教程詳解

    Docker下redis的主從配置教程詳解

    這篇文章主要介紹了Docker下redis的主從配置,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Docker容器的加載分層原理及commit鏡像

    Docker容器的加載分層原理及commit鏡像

    這篇文章主要為大家介紹了Docker容器的加載分層原理及commit鏡像,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • docker部署MongoDB數(shù)據(jù)庫(kù)的實(shí)現(xiàn)步驟

    docker部署MongoDB數(shù)據(jù)庫(kù)的實(shí)現(xiàn)步驟

    Docker可以提供一個(gè)輕量級(jí)、可移植的容器化環(huán)境,使得MongoDB的部署變得更加簡(jiǎn)單和靈活,本文主要介紹了docker部署MongoDB數(shù)據(jù)庫(kù)的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04
  • Docker 修改docker存儲(chǔ)位置 修改容器鏡像大小限制操作

    Docker 修改docker存儲(chǔ)位置 修改容器鏡像大小限制操作

    這篇文章主要介紹了Docker 修改docker存儲(chǔ)位置 修改容器鏡像大小限制操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • 如何使用docker搭建ELK分布式日志同步方案

    如何使用docker搭建ELK分布式日志同步方案

    ELK作為業(yè)界最常用日志同步方案,我們今天嘗試一下使用docker快速搭建一套ELK方案,ELK使用國(guó)內(nèi)加速源拉取的鏡像比較舊,有條件的朋友可以拉取官網(wǎng)的源,感興趣的朋友跟隨小編一起看看吧
    2024-07-07

最新評(píng)論

饶阳县| 广饶县| 玉林市| 勃利县| 宁强县| 梨树县| 扎赉特旗| 新安县| 翁源县| 宁德市| 南乐县| 醴陵市| 东乡族自治县| 定结县| 广平县| 台前县| 宜春市| 开平市| 平阳县| 南京市| 鸡泽县| 汉寿县| 慈溪市| 阿勒泰市| 霍山县| 长岭县| 曲沃县| 上虞市| 富锦市| 临高县| 沐川县| 东方市| 大名县| 天柱县| 古田县| 彰化县| 明溪县| 应用必备| 高尔夫| 嘉黎县| 江阴市|