您好,登錄后才能下訂單哦!
這篇文章給大家介紹使用Docker如何暴露Container容器的端口,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
查看Container的IP地址
docker inspect <container name or id>| grep IPAddress
查看Container的映射的端口
docker port <container name or id> eg. docker port d8dac7399647 docker 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容器的端口就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。