Docker動(dòng)態(tài)給容器Container暴露端口操作
查看Container的IP地址
docker inspect <container name or id>| grep IPAddress
查看Container的映射的端口
docker port <container name or id>eg.docker port d8dac7399647docker port hfq-jedi-zxf-eden
用iptables查看容器映射情況
iptables -t nat -nvL
iptables -t nat -nvL --line-number
舉例新增端口的映射
##將主機(jī)31101 映射到 容器 6379端口
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 31101 -j DNAT --to-destination 192.168.42.2:6379
保存iptables規(guī)則
iptables-save
說明
192.168.42.2 是根據(jù) docker inspect <container name or id>| grep IPAddress 的結(jié)果
端口映射完畢后,不能通過docker port d8dac7399647查詢到結(jié)果
可以通過
iptables -t nat -nvL | grep 192.168.42.2
查詢 映射關(guān)系
補(bǔ)充知識(shí):docker容器通信和端口暴露問題中的機(jī)制
一直以來用docker容器間通信都是使用的link的方式,這就限制各個(gè)容器啟動(dòng)的前后順序,總感覺很不靈活,因此這次探索了一下直接通過docker自帶網(wǎng)卡分配的局域網(wǎng)來進(jìn)行容器間的訪問。
docker的端口暴露指的是,經(jīng)過docker0這個(gè)網(wǎng)卡的轉(zhuǎn)發(fā),將容器本身的端口服務(wù)轉(zhuǎn)發(fā)到暴露端口上,比如執(zhí)行:
docker run -dit -p 8080:12345 --name=container_name image_name
使用docker0網(wǎng)卡分配的172.17.0.x這個(gè)局域網(wǎng)訪問的時(shí)候,使用12345端口。在使用192.168.1.x或其他本機(jī)公網(wǎng)ip訪問的時(shí)候,就是要用8080來訪問了
時(shí)間有限,暫時(shí)不仔細(xì)分析了,有時(shí)間放圖分析一下
以上這篇Docker動(dòng)態(tài)給容器Container暴露端口操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 不要在HTML中濫用div2. HTML5實(shí)戰(zhàn)與剖析之觸摸事件(touchstart、touchmove和touchend)3. CSS百分比padding制作圖片自適應(yīng)布局4. React優(yōu)雅的封裝SvgIcon組件示例5. Vue如何使用ElementUI對(duì)表單元素進(jìn)行自定義校驗(yàn)及踩坑6. vue前端RSA加密java后端解密的方法實(shí)現(xiàn)7. CSS清除浮動(dòng)方法匯總8. Electron調(diào)用外接攝像頭并拍照上傳實(shí)現(xiàn)詳解9. HTTP協(xié)議常用的請(qǐng)求頭和響應(yīng)頭響應(yīng)詳解說明(學(xué)習(xí))10. TypeScript實(shí)現(xiàn)十大排序算法之歸并排序示例詳解
