您的位置:首頁技術文章
文章詳情頁

Docker動態給容器Container暴露端口操作

瀏覽:134日期:2024-11-11 10:45:04

查看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

舉例新增端口的映射

##將主機31101 映射到 容器 6379端口

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 31101 -j DNAT --to-destination 192.168.42.2:6379

保存iptables規則

iptables-save

說明

192.168.42.2 是根據 docker inspect <container name or id>| grep IPAddress 的結果

端口映射完畢后,不能通過docker port d8dac7399647查詢到結果

可以通過

iptables -t nat -nvL | grep 192.168.42.2

查詢 映射關系

補充知識:docker容器通信和端口暴露問題中的機制

一直以來用docker容器間通信都是使用的link的方式,這就限制各個容器啟動的前后順序,總感覺很不靈活,因此這次探索了一下直接通過docker自帶網卡分配的局域網來進行容器間的訪問。

docker的端口暴露指的是,經過docker0這個網卡的轉發,將容器本身的端口服務轉發到暴露端口上,比如執行:

docker run -dit -p 8080:12345 --name=container_name image_name

使用docker0網卡分配的172.17.0.x這個局域網訪問的時候,使用12345端口。在使用192.168.1.x或其他本機公網ip訪問的時候,就是要用8080來訪問了

時間有限,暫時不仔細分析了,有時間放圖分析一下

以上這篇Docker動態給容器Container暴露端口操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Docker
相關文章:
国产综合久久一区二区三区