關於docker容器訪問的主機的埠問題

2022-03-02 02:18:29 字數 875 閱讀 6902

docker容器需要訪問主機的,不能使用127.0.0.1,127.0.0.1訪問的是docker容器不是主機;

docker容器建立時會分配乙個主機ip,可在主機使用命令 docker inspect 9f025896a9ec 檢視容器的相關資訊;其中的 "gateway" 對應的ip位址,就是主機的ip位址,訪問主機的服務應該使用這個位址來訪問;

需要注意的是,主機開啟了防火牆的,要把訪問的埠開啟,不然容器是無法訪問主機的。

舉個栗子:現在我在容器中安裝了乙個nginx,容器id為9f025896a9ec,然後反向**到主機的8080埠。

先在主機使用命令docker inspect 9f025896a9ec列印容器的資訊,

找到"gateway"對應的為容器中對應主機的ip【這裡假設為:172.1.0.1】,

找到"ipaddress"對應的容器的ip【172.1.0.2】;

進入容器docker exec -it 9f025896a9ec /bin/bash

在容器中配置nginx.conf,反向**的位址設定為

退出容器exit,在主機上重啟容器中的nginx:docker restart 9f025896a9ec;

開放埠8080給容器firewall-cmd --permanent --add-rich-rule 'rule family=ipv4 source address=172.1.0.2 port port=8080 protocol=tcp accept'

過載防火牆firewall-cmd --reload;

docker宿主機訪問docker容器服務失敗

原因 因為docker的虛擬ip網段是172.17.與區域網的ip網段172.17衝突了,所以有兩種方式 解決方法 一 修改docker網絡卡資訊,將網段改為與區域網不同的即可 linux修改方法 第一步 刪除原有配置 sudo service docker stop sudo ip link se...

Docker容器訪問宿主機網路

業務請求量小的時候,我們會把一些工程部署到同一臺機器上。這些工程之間也會相互訪問。如果是http的介面,我們最方便的是使用localhost帶地本機的ip。不過結合docker容器後出現了問題。docker容器中localhost表示容器的ip位址。不是宿主機ip。其實docker容器執行的時候有h...

docker跨主機容器訪問(網橋實現)

本篇文章主要講述利用網橋方式實現docker跨主機容器訪問,參考文章 docker網路基礎 docker跨主機容器訪問通訊 在同一宿主機下的docker的容器之間是預設互相聯通的。在容器內通過ifconfig可以檢視到ip位址。在不同的容器中來執行ping是可以ping通的。但我們通過觀察發現,每乙...