亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

背景:

之前做了一個項目,需要在容器內訪問宿主機提供的Redis 服務(這是一個比較常見的應用場景哈), 常規(guī)方案:

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

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

docker會默認建立docker0 網(wǎng)橋;

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

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

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

第一步:自定義網(wǎ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

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

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

第二步:容器內建立 對應于宿主機的別名

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

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

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

之后在程序的配置文件即可應用 dockerhost:6379 訪問宿主機Redis服務。

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

一個狀況:

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

簡化問題測試:新建容器,在容器內嘗試ping docker0 網(wǎng)關, 嗶了狗了,4臺公司機器都ping不通docker0網(wǎng)關,外網(wǎng)還是正常訪問。

那這個問題就成了: 使用默認的docker0網(wǎng)橋,容器內無法ping通docker0網(wǎng)關,進而無法訪問宿主機。

呀呀呀呀, 八成是公司機器的配置問題 ~。。~

追問公司運維同學,發(fā)現(xiàn):

Chain INPUT (policy DROP)

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

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

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

這個策略的初衷是 服務器安全(尼瑪, 導致容器訪問宿主機的基礎能力都沒有了?。。。?。

運維方案:

① 使用 sudo service iptables stop 關閉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ī)則, 傳送門

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

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

相關文章

  • 詳解Docker 下開發(fā) hyperf 完整使用示例

    詳解Docker 下開發(fā) hyperf 完整使用示例

    這篇文章主要介紹了詳解Docker 下開發(fā) hyperf 完整使用示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • docker端口映射的實現(xiàn)示例

    docker端口映射的實現(xiàn)示例

    Docker 端口映射允許我們將容器內部的服務綁定到宿主機上的一個或多個端口,本文主要介紹了docker端口映射的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Docker進階之快速擴容的方法

    Docker進階之快速擴容的方法

    這篇文章主要介紹了Docker進階之快速擴容的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • Docker如何使用Dockerfile構建鏡像

    Docker如何使用Dockerfile構建鏡像

    本篇文章主要介紹了Docker如何使用Dockerfile構建鏡像,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 兩種方式創(chuàng)建docker鏡像的啟動容器時區(qū)別介紹(總結篇)

    兩種方式創(chuàng)建docker鏡像的啟動容器時區(qū)別介紹(總結篇)

    這篇文章主要介紹了基于兩種創(chuàng)建docker鏡像的啟動容器時區(qū)別總結,第一種凡是用docker commit生成的鏡像啟動的時候可以加載一個啟動自己應用的腳本,第二種用Docfile文件生成的鏡像時,來啟動容器就不用再加這個腳本了,具體詳情一起通過本文學習吧
    2016-10-10
  • docker運行nginx不生效的解決辦法

    docker運行nginx不生效的解決辦法

    當docker運行nginx鏡像時,設置端口映射,則只有該映射端口起作用,nginx配置的其他端口無效,接下來本文將給大家介紹docker運行nginx不生效的解決辦法,文中有相關的代碼示例供大家參考,需要的朋友可以參考下
    2024-01-01
  • Docker搭建自己的本地鏡像倉庫的步驟

    Docker搭建自己的本地鏡像倉庫的步驟

    今天小編就為大家分享一篇關于Docker搭建自己的本地鏡像倉庫的步驟,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • Docker的理解和基本命令詳解

    Docker的理解和基本命令詳解

    這篇文章主要介紹了Docker的理解和基本命令詳解,需要的朋友可以參考下
    2017-05-05
  • 你可能不知道的docker命令奇怪巧

    你可能不知道的docker命令奇怪巧

    這篇文章主要介紹了你可能不知道的docker命令的奇怪巧,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-01-01
  • 如何查看docker-compose.yml所在位置

    如何查看docker-compose.yml所在位置

    這篇文章主要介紹了如何查看docker-compose.yml所在位置問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11

最新評論