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