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

Docker容器訪問宿主機網(wǎng)絡(luò)的方法

 更新時間:2018年10月19日 15:14:49   作者:jingsam  
這篇文章主要介紹了Docker容器訪問宿主機網(wǎng)絡(luò)的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

最近部署一套系統(tǒng),使用nginx作反向代理,其中nginx是使用docker方式運行:

$ docker run -d --name nginx $PWD:/etc/nginx -p 80:80 -p 443:443 nginx:1.15

需要代理的API服務(wù)運行在宿主機的 1234 端口, nginx.conf 相關(guān)配置如下:

server {
 ...

 location /api {
  proxy_pass http://localhost:1234
 }
 ...
}

結(jié)果訪問的時候發(fā)現(xiàn)老是報 502 Bad Gateway 錯誤,錯誤日志顯示無法連接到upstream。

仔細想一想, nginx.conf 中的 localhost 似乎有問題。由于nginx是運行在docker容器中的,這個 localhost 是容器的localhost,而不是宿主機的localhost。

到這里,就出現(xiàn)了本文要解決的問題:如何從容器中訪問到宿主機的網(wǎng)絡(luò)?通過搜索網(wǎng)絡(luò),有如下幾種方法:

使用宿主機IP

在安裝Docker的時候,會在宿主機安裝一個虛擬網(wǎng)關(guān) docker0 ,我們可以使用宿主機在 docker0 上的IP地址來代替 localhost 。

首先,使用如下命令查詢宿主機IP地址:

$ ip addr show docker0
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
  link/ether 02:42:d5:4c:f2:1e brd ff:ff:ff:ff:ff:ff
  inet 172.17.0.1/16 scope global docker0
    valid_lft forever preferred_lft forever
  inet6 fe80::42:d5ff:fe4c:f21e/64 scope link
    valid_lft forever preferred_lft forever

可以發(fā)現(xiàn)宿主機的IP是 172.17.0.1 ,那么將 proxy_pass http://localhost:1234 改為 proxy_pass http://172.17.0.1:1234 就可以解決 502 Bad Gateway 錯誤。

但是,不同系統(tǒng)下宿主機的IP是不同的,例如Linux下一般是 172.17.0.1 , macOS下一般是 192.168.65.1 ,并且這個IP還可以更改。所以使用IP配置 nginx.conf ,不能跨環(huán)境通用。

使用host網(wǎng)絡(luò)

Docker容器運行的時候有 host 、 bridge 、 none 三種網(wǎng)絡(luò)可供配置。默認是 bridge ,即橋接網(wǎng)絡(luò),以橋接模式連接到宿主機; host 是宿主網(wǎng)絡(luò),即與宿主機共用網(wǎng)絡(luò); none 則表示無網(wǎng)絡(luò),容器將無法聯(lián)網(wǎng)。

當(dāng)容器使用 host 網(wǎng)絡(luò)時,容器與宿主共用網(wǎng)絡(luò),這樣就能在容器中訪問宿主機網(wǎng)絡(luò),那么容器的 localhost 就是宿主機的 localhost 。

在docker中使用 --network host 來為容器配置 host 網(wǎng)絡(luò):

$ docker run -d --name nginx --network host nginx

上面的命令中,沒有必要像前面一樣使用 -p 80:80 -p 443:443 來映射端口,是因為本身與宿主機共用了網(wǎng)絡(luò),容器中暴露端口等同于宿主機暴露端口。

使用host網(wǎng)絡(luò)不需要修改 nginx.conf ,仍然可以使用 localhost ,因而通用性比上一種方法好。但是,由于 host 網(wǎng)絡(luò)沒有 bridge 網(wǎng)絡(luò)的隔離性好,使用 host 網(wǎng)絡(luò)安全性不如 bridge 高。

總結(jié)

本文提出了使用宿主機IP和使用host網(wǎng)絡(luò)兩種方法,來實現(xiàn)從容器中訪問宿主機的網(wǎng)絡(luò)。兩種方法各有優(yōu)劣,使用宿主機IP隔離性更好,但通用性不好;使用host網(wǎng)絡(luò),通用性好,但帶來了暴露宿主網(wǎng)絡(luò)的風(fēng)險。

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

相關(guān)文章

  • Docker在Ubuntu中的部署全流程

    Docker在Ubuntu中的部署全流程

    本文介紹在Linux操作系統(tǒng)Ubuntu的18.04及以上版本中,配置開源容器化平臺和工具集Docker的詳細方法,其中,我們以配置Docker平臺的核心組件之一Docker Engine為例來詳細介紹,需要的朋友可以參考下
    2024-03-03
  • Docker搭建Redis5.0并掛載數(shù)據(jù)

    Docker搭建Redis5.0并掛載數(shù)據(jù)

    本文主要介紹了Docker搭建Redis5.0并掛載數(shù)據(jù),文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • 在 docker 之間導(dǎo)出導(dǎo)入鏡像的方法

    在 docker 之間導(dǎo)出導(dǎo)入鏡像的方法

    本篇文章主要介紹了在 docker 之間導(dǎo)出導(dǎo)入鏡像的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • docker overlay2 文件夾比較大處理步驟

    docker overlay2 文件夾比較大處理步驟

    本文介紹了Docker默認存儲驅(qū)動overlay2文件夾變得大時的清理方法,包括清理未使用的Docker對象、刪除未使用的容器和鏡像、清理日志文件和數(shù)據(jù)卷等步驟,通過這些步驟,可以有效釋放磁盤空間并避免存儲空間不足的問題,感興趣的朋友跟隨小編一起看看吧
    2025-03-03
  • Docker部署MySQL8集群(一主二從)的實現(xiàn)步驟

    Docker部署MySQL8集群(一主二從)的實現(xiàn)步驟

    本文主要介紹了Docker部署MySQL8集群,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 利用python自動生成docker nginx反向代理配置

    利用python自動生成docker nginx反向代理配置

    這篇文章主要介紹了利用python自動生成docker nginx反向代理配置的相關(guān)資料,完成反向代理盡量簡單,占內(nèi)存少等,需要的朋友可以參考下
    2017-01-01
  • kubernetes1.5.2升級到kubernetes1.10一些主要的設(shè)定修改記錄

    kubernetes1.5.2升級到kubernetes1.10一些主要的設(shè)定修改記錄

    今天小編就為大家分享一篇關(guān)于kubernetes1.5.2升級到kubernetes1.10一些主要的設(shè)定修改記錄,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Docker 容器內(nèi)存監(jiān)控原理及應(yīng)用

    Docker 容器內(nèi)存監(jiān)控原理及應(yīng)用

    這篇文章主要介紹了Docker 容器內(nèi)存監(jiān)控原理及應(yīng)用的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • Docker 部署 Mysql8.0的方法示例

    Docker 部署 Mysql8.0的方法示例

    這篇文章主要介紹了Docker 部署 Mysql8.0的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 如何設(shè)置docker開機自啟動,并設(shè)置容器自動重啟

    如何設(shè)置docker開機自啟動,并設(shè)置容器自動重啟

    這篇文章主要介紹了如何設(shè)置docker開機自啟動,并設(shè)置容器自動重啟問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02

最新評論

鄂托克旗| 新野县| 东丰县| 钦州市| 红桥区| 衢州市| 平湖市| 隆尧县| 乌海市| 新疆| 龙里县| 罗平县| 洪湖市| 寿宁县| 辉南县| 沙坪坝区| 垣曲县| 嘉黎县| 厦门市| 阿拉尔市| 北安市| 定结县| 长宁区| 时尚| 内黄县| 基隆市| 老河口市| 溆浦县| 札达县| 长治市| 临沂市| 惠安县| 崇左市| 莱州市| 揭东县| 图们市| 蕲春县| 从化市| 河源市| 山阴县| 南开区|