欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker不能綁定靜態(tài)的外網(wǎng)固定ip的問題及解決辦法

 更新時(shí)間:2017年01月25日 09:34:37   作者:chengxuyuanyonghu  
這篇文章主要介紹了Docker不能綁定靜態(tài)的外網(wǎng)固定ip的問題及解決辦法,需要的朋友可以參考下

前段時(shí)間,我一直在研究如何給Docker分配靜態(tài)ip,主要的用途是讓thrift進(jìn)來和出來都走一個(gè)ip,還有就是爬蟲可以獨(dú)立ip地址,這樣就很好的實(shí)現(xiàn)了爬蟲的多ip方式…  但是隨著nginx tcp的加入和開發(fā)了一個(gè)基于Python socket的ip輪詢?cè)L問模塊解決了這兩個(gè)問題…  當(dāng)然也不能因?yàn)檫@兩問題,就丟棄這問題了….

在Docker run的時(shí)候,咱們可以添加-p參數(shù)來控制他的source來源ip。   下面的命令,對(duì)外來說,開放了192.168.1.200:9200的端口…  但是我們不僅僅滿與此。 docker run -p 端口的實(shí)現(xiàn),就是借用iptables來實(shí)現(xiàn)的…   我們iptables -t nat -L 的時(shí)候,就能看到docker幫我做好的nat關(guān)系…. docker做iptables的prerouting的時(shí)候,是追加了名叫docker的自定義鏈條…      差點(diǎn)又跑題了,如果是橋接模式,那么就致使當(dāng)我們?nèi)绻萜骼锩娑丝诘淖儎?dòng)比較大的時(shí)候,那么就會(huì)造成改動(dòng)端口映射的操作的復(fù)雜性,需要每次的變更,做一個(gè)iptables prerouting映射…    但是如果你選擇HOST網(wǎng)絡(luò)模式,那么你又不好確定你的app綁定的是哪個(gè)ip地址,不是什么服務(wù)端都支持bind ip地址的… 有些搓蛋的服務(wù)端就默認(rèn)綁定第一個(gè)ip地址…    這個(gè)時(shí)候,為docker容器分配一個(gè)獨(dú)立的靜態(tài)ip地址就顯得很有必要了….  反正就一個(gè)ip地址,你可勁的折騰…..   

Python

docker run -it -p 192.168.1.200:9200:9200 redis_cluster 9200
Python

root@ubuntu:~#
 iptables -t nat -L -n
ChainPREROUTING(policyACCEPT)
target  protoptsource       destination
DOCKER  all -- 0.0.0.0/0      0.0.0.0/0      ADDRTYPEmatchdst-typeLOCAL
ChainINPUT(policyACCEPT)
target  protoptsource       destination
ChainOUTPUT(policyACCEPT)
target  protoptsource       destination
DOCKER  all -- 0.0.0.0/0     !127.0.0.0/8     ADDRTYPEmatchdst-typeLOCAL
ChainPOSTROUTING(policyACCEPT)
target  protoptsource       destination
MASQUERADE all -- 172.17.0.0/16    0.0.0.0/0
MASQUERADE all -- 172.17.0.0/16   !172.17.0.0/16
MASQUERADE tcp -- 172.17.0.1     172.17.0.1     tcpdpt:9200
ChainDOCKER(2references)
target  protoptsource       destination
DNAT   tcp -- 0.0.0.0/0      0.0.0.0/0      tcpdpt:9200to:172.17.0.1:9200

需要注意的是,docker run創(chuàng)建一個(gè)容器的時(shí)候,一定要把他的網(wǎng)卡模式改成docker的none…  一般在docker自定義網(wǎng)絡(luò)的時(shí)候,都會(huì)把–net=none,再通過后期的一頓折騰讓docker的容器有網(wǎng)絡(luò)…..

接著,我如果想給容器,徹底的分配一個(gè)外網(wǎng)ip,或者管理ip,反正就一個(gè)靜態(tài)的獨(dú)立ip,怎么破? 用pipework是可以實(shí)現(xiàn)的。 但這東西稍復(fù)雜些,我們就先用系統(tǒng)的ip netns來解決…. 通過inspect我們知道了他的state pid .

Python

root@ubuntu:~# docker ps -a
CONTAINER ID    IMAGE        COMMAND        CREATED       STATUS       PORTS        NAMES
232621e9e9fb    redis_cluster    "/app/manage.sh 9000  41 minutes ago   Up 41 minutes              agitated_blackwell
root@ubuntu:~# docker inspect -f "{{.State.Pid}}" 232621e9e9fb
4777
root@ubuntu:~# pid=4777

那么我們來開始綁定靜態(tài)ip地址,先別看原理,暫時(shí)照著做…

Python

mkdir-p/var/run/netns
ln-s/proc/$pid/ns/net/var/run/netns/$pidiplinkaddAtypevethpeernameB
brctladdifdocker0A
iplinksetAup
iplinksetBnetns$pid
ipnetnsexec$pidiplinksetdevBnameeth0
ipnetnsexec$pidiplinkseteth0up
ipnetnsexec$pidipaddradd192.168.1.200/24deveth0
ipnetnsexec$pidiprouteadddefaultvia192.168.1.1

這些都結(jié)束了后,我們會(huì)發(fā)現(xiàn)容器的網(wǎng)卡里面從一個(gè)lo,多出一個(gè)eth0網(wǎng)卡,網(wǎng)卡的ip地址正是我們剛才綁定的192.168.1.200

Python

bash-4.1#
 ip a
1:lo:<LOOPBACK,UP,LOWER_UP>mtu65536qdiscnoqueuestateUNKNOWN
  link/loopback00:00:00:00:00:00brd00:00:00:00:00:00
  inet127.0.0.1/8scopehostlo
   valid_lftforeverpreferred_lftforever
  inet6::1/128scopehost
   valid_lftforeverpreferred_lftforever
22:eth0:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscpfifo_faststateUPqlen1000
  link/etherca:aa:87:05:c9:5abrdff:ff:ff:ff:ff:ff
  inet192.168.1.200/24scopeglobaleth0
   valid_lftforeverpreferred_lftforever
  inet6fe80::c8aa:87ff:fe05:c95a/64scopelink
   valid_lftforeverpreferred_lftforever
bash-4.1#

到此為止,docker綁定固定的靜態(tài)ip的方法已經(jīng)說明白了….   看了文章后,會(huì)發(fā)現(xiàn)docker綁定ip是比較的簡單..  docker的網(wǎng)絡(luò)是不怎么好理解的,這兩天我多專供下docker分配ip的整個(gè)流程 (docker iptables)

以上所述是小編給大家介紹的Docker不能綁定靜態(tài)的外網(wǎng)固定ip的問題及解決辦法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Docker?安裝Jenkins全過程及踩坑指南

    Docker?安裝Jenkins全過程及踩坑指南

    這篇文章主要介紹了Docker?安裝Jenkins?踩坑全指南,本文通過圖文示例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • docker安裝nginx實(shí)現(xiàn)對(duì)springboot項(xiàng)目的負(fù)載均衡的操作方法

    docker安裝nginx實(shí)現(xiàn)對(duì)springboot項(xiàng)目的負(fù)載均衡的操作方法

    這篇文章主要介紹了docker安裝nginx實(shí)現(xiàn)對(duì)springboot項(xiàng)目的負(fù)載均衡的操作方法,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • 詳解docker-compose安裝minio

    詳解docker-compose安裝minio

    這篇文章主要介紹了docker-compose安裝minio的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • 使用DockerFile構(gòu)建docker鏡像掛載目錄,數(shù)據(jù)卷同步問題

    使用DockerFile構(gòu)建docker鏡像掛載目錄,數(shù)據(jù)卷同步問題

    這篇文章主要介紹了使用DockerFile構(gòu)建docker鏡像掛載目錄,數(shù)據(jù)卷同步問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Docker安裝wordpress并配置數(shù)據(jù)庫超詳細(xì)介紹版

    Docker安裝wordpress并配置數(shù)據(jù)庫超詳細(xì)介紹版

    安裝WordPress是一項(xiàng)常見的任務(wù),使用Docker可以使這個(gè)過程更加簡單和可靠,下面這篇文章主要給大家介紹了關(guān)于Docker安裝wordpress并配置數(shù)據(jù)庫的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • 詳解制作各種docker鏡像

    詳解制作各種docker鏡像

    本篇文章主要介紹了制作各種docker鏡像,詳解的介紹了各種制作的docker鏡像的方法,有興趣的可以了解一下
    2017-05-05
  • docker容器的一些常見命令小結(jié)

    docker容器的一些常見命令小結(jié)

    Docker是目前最流行的容器化平臺(tái)之一,它提供了一種輕量級(jí)的虛擬化解決方案,使得應(yīng)用程序的部署和管理變得更加便捷和高效,這篇文章主要給大家總結(jié)介紹了關(guān)于docker容器的一些常見命令,需要的朋友可以參考下
    2024-01-01
  • Ubuntu Docker 源碼編譯(1.9.1 )詳解

    Ubuntu Docker 源碼編譯(1.9.1 )詳解

    這篇文章主要介紹了Ubuntu Docker 源碼編譯(1.9.1 )詳解的相關(guān)資料,這里對(duì)編譯過程進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以參考下
    2016-11-11
  • Docker Desktop更改鏡像存儲(chǔ)位置的實(shí)現(xiàn)

    Docker Desktop更改鏡像存儲(chǔ)位置的實(shí)現(xiàn)

    本文主要主要介紹了Docker Desktop更改鏡像存儲(chǔ)位置的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • 如何使用Docker快速搭建服務(wù)器環(huán)境

    如何使用Docker快速搭建服務(wù)器環(huán)境

    這篇文章主要介紹了使用Docker快速搭建服務(wù)器環(huán)境的詳細(xì)步驟,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-10-10

最新評(píng)論