麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 操作系統(tǒng) > 正文

利用iptables給Docker綁定一個外網(wǎng)IP

2024-06-28 16:00:51
字體:
供稿:網(wǎng)友

背景

由于Docker默認是不能夠與外部進行直接的通信,比較普遍的仿佛是利用啟動時-p來與主機進行端口映射與外界溝通。但是有時候在有其他需求時并不太方便,特別是在進行一些Docker打包之前的內(nèi)部開發(fā)時,希望其能夠像虛機一樣能夠與外部有很好的通信,便希望其能夠綁定外部的ip地址。 docker默認的網(wǎng)絡是橋接在創(chuàng)建好后的網(wǎng)橋docker0上的。docker0默認的典型地址為172.17.42.1,子網(wǎng)掩碼為255.255.0.0。之后啟動容器會給容器分配一個同一網(wǎng)段(172.17.0.0/16)的地址。然后啟動docker容器時會創(chuàng)建一對veth pair。其中一端為容器內(nèi)部的eth0,另外一端為掛載到docker0網(wǎng)橋并以veth開頭命名。如下所示:

#brctl showbridge name bridge id STPenabled interfacesdocker0 8000.56847afe9799 no veth135f096veth5f8fe2d12341234

通過這種方式,容器可以跟主機以及容器之間進行通信,主機和容器共享虛擬網(wǎng)絡。 在做開發(fā)等時候,可能希望容器能夠像虛機一樣遠程登錄與訪問,這時候就需要給容器再綁定一個外部IP地址,這時候即可考慮采用iptables進行端口轉(zhuǎn)發(fā)來實現(xiàn)對于容器的外部IP綁定。

環(huán)境

一臺Ubuntu的服務器,所屬網(wǎng)段為10.50.10.0/26,該服務器的IP為10.50.10.26,由于還使用了ovs,因此是該IP是在br-ex上的; 一個ubuntu的容器,IP為172.17.0.1/26 。

目的

通過iptables為IP為172.17.0.1的容器綁定外部IP 這里為10.50.10.56.

過程

整個過程大致分為3部分:

1. 為主機綁定多個IP地址

這一步可以通過如下命令來給網(wǎng)橋綁定另外一個IP:

#ifconfig br-ex:010.50.10.56/2411

如果希望重啟機器后仍然能夠生效,需要將其寫入到/etc/network/interfaces中。

2. iptables設置DNAT

通過DNAT來重寫包的目的地址,將指向10.50.10.56的數(shù)據(jù)包的目的地址都改為172.17.0.1,這樣即可以

#iptables -t nat -A PREROUTING -d 10.50.10.56 -p tcp -m tcp --dport 1:65535 -j DNAT--to-destination 172.17.0.1:1-6553511

3. iptables設置SNAT

重寫包的源IP地址,即在容器中收到數(shù)據(jù)包之后,將其源改為docker0的地址。

#iptables -t nat -A POSTROUTING -d 172.17.0.1 -p tcp -m tcp --dport 1:65535 -j SNAT --to-source172.17.42.111

保存規(guī)則

如果希望保存下來,需要通過命令:

#/etc/init.d/iptables save11

來進行保存。

刪除規(guī)則

當然如果想刪除該規(guī)則,也可以通過

# iptables –t nat –D PREROUTING <number># iptables –t nat –D POSTROUTING <number>1212

來將創(chuàng)建的這兩條規(guī)則刪除。

驗證

首先通過iptables來查看是否生效。

# iptables -n -t nat -LChain PREROUTING (policyACCEPT)target prot opt source destinationDNAT tcp -- 0.0.0.0/0 10.50.10.56 tcp dpts:1:65535to:172.17.0.1:1-65535Chain INPUT (policyACCEPT)target prot opt source destinationChain OUTPUT (policyACCEPT)target prot opt source destinationDOCKER all -- 0.0.0.0/0 !127.0.0.0/8 ADDRTYPE match dst-type LOCALChain POSTROUTING (policyACCEPT)target prot opt source destinationMASQUERADE all -- 10.50.10.0/26 0.0.0.0/0MASQUERADE all -- 172.17.0.0/16 0.0.0.0/0SNAT tcp -- 0.0.0.0/0 172.17.0.1 tcp dpts:1:65535 to:172.17.42.112345678910111213141234567891011121314

然后可以通過安裝ssh或者apache2等需要使用端口的服務來進行驗證。

當然實現(xiàn)這個功能會有很多種方法,歡迎大家來拍磚~

參考

1,《Docker——從入門到實踐》:高級網(wǎng)絡配置 http://dockerpool.com/static/books/docker_practice/advanced_network/README.html 2,The netfilter/iptables HOWTO’s http://www.netfilter.org/documentation/index.html 3,Iptables 指南 

http://man.chinaunix.net/network/iptables-tutorial-cn-1.1.19.html

轉(zhuǎn)自:http://blog.csdn.net/shipengfei92/article/details/47089055


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 日本一道aⅴ不卡免费播放 视屏一区 | 欧美一级电影网 | 欧美一级做一级爱a做片性 91在线视频观看 | 在线香蕉视频 | 在线亚洲欧美 | 久久亚洲线观看视频 | 亚洲综合精品成人 | jizzjizzjizzjizz国产 | 在线成人免费观看www | 国产精品久久久久久久久久 | 激情欧美在线 | 成人黄色短视频在线观看 | 免费在线观看国产精品 | 一级电影免费 | a视频在线看 | 久久色播 | 久久久视频免费观看 | 黄在线免费看 | 香蕉久草视频 | 精品一区二区三区电影 | 国产成人在线免费看 | 加勒比色综合 | 国产精品久久久久久影院8一贰佰 | 久久99综合 | 在线区| 情侣啪啪网站 | 久久草在线看 | 日本不卡二区 | 久久久久电影网站 | 国产成人精品区一区二区不卡 | 免费一级欧美 | 91av在线影院 | 久久久三区 | xnxx 美女19| 久久老司机精品视频 | 成人午夜在线免费观看 | 国产精品自拍99 | 香蕉黄色网 | 欧美激情性色生活片在线观看 | 沉沦的校花奴性郑依婷c到失禁 | 正在播放91精 |