在CentOS系統中使用Docker進行容器間通信,可以通過以下幾種方式實現:
Docker默認會創建一個名為bridge
的虛擬網絡,所有未指定網絡的容器都會連接到這個網絡上。容器可以通過IP地址或者容器名稱進行通信。
啟動容器:
docker run -d --name container1 nginx
docker run -d --name container2 nginx
查看容器IP地址:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container1
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container2
容器間通信:
curl http://<container1-ip>:80
curl http://container1:80
你可以創建一個自定義的橋接網絡,以便更好地管理和控制容器間的通信。
創建自定義橋接網絡:
docker network create my_bridge_network
啟動容器并連接到自定義網絡:
docker run -d --name container1 --network my_bridge_network nginx
docker run -d --name container2 --network my_bridge_network nginx
容器間通信:
curl http://container1:80
如果你希望容器直接使用主機的網絡棧,可以使用--network host
選項。
啟動容器并使用主機網絡:
docker run -d --name container1 --network host nginx
docker run -d --name container2 --network host nginx
容器間通信:
curl http://<host-ip>:80
Overlay網絡適用于跨主機的容器通信。它通過VXLAN等技術在多個Docker主機之間創建一個虛擬網絡。
創建Overlay網絡:
docker network create --driver overlay --subnet=10.0.0.0/24 my_overlay_network
啟動容器并連接到Overlay網絡:
docker run -d --name container1 --network my_overlay_network nginx
docker run -d --name container2 --network my_overlay_network nginx
容器間通信:
curl http://container1:80
選擇合適的網絡模式取決于你的具體需求和應用場景。