在docker中,容器的 IP 地址和端口分配主要受到以下幾個(gè)因素的影響:
- 網(wǎng)絡(luò)模式:橋接網(wǎng)絡(luò)(Bridge): docker 默認(rèn)使用橋接網(wǎng)絡(luò)模式,每個(gè)容器會(huì)被分配一個(gè)唯一的 IP 地址。你可以使用 -p 或 –publish 選項(xiàng)將容器內(nèi)部的端口映射到主機(jī)上,這樣外部就可以通過主機(jī)的 IP 地址和映射的端口訪問容器服務(wù)。docker run -p 主機(jī)端口:容器端口 image_name主機(jī)網(wǎng)絡(luò)(Host): 使用主機(jī)網(wǎng)絡(luò)模式時(shí),容器將直接使用主機(jī)的網(wǎng)絡(luò)命名空間,不進(jìn)行端口映射。容器的服務(wù)將通過主機(jī)的 IP 地址和容器內(nèi)部的端口進(jìn)行訪問。docker run –network host image_name自定義網(wǎng)絡(luò)(Custom): 你也可以創(chuàng)建自定義的用戶定義網(wǎng)絡(luò),容器將在這個(gè)網(wǎng)絡(luò)中運(yùn)行。通過映射端口或者連接到同一網(wǎng)絡(luò)的方式進(jìn)行通信。
- 隨機(jī)分配:如果不顯式指定端口映射,docker 會(huì)自動(dòng)分配一個(gè)隨機(jī)的主機(jī)端口給容器的服務(wù)。你可以通過 docker ps 命令查看容器的端口映射情況。docker ps
- 容器內(nèi)部的端口:容器內(nèi)部運(yùn)行的服務(wù)會(huì)監(jiān)聽容器內(nèi)部的端口。你需要確保在容器內(nèi)部的應(yīng)用程序中配置正確的端口。
總體來說,通過網(wǎng)絡(luò)模式和端口映射,你可以控制容器的 IP 地址和端口分配方式,以滿足不同場(chǎng)景下的需求。