在使用Docker進(jìn)行多臺(tái)機(jī)器容器管理時(shí),常常遇到兩臺(tái)機(jī)子之間需要互相通信的情況。下面介紹兩種方法實(shí)現(xiàn)兩臺(tái)機(jī)子之間的Docker容器通信。
方式一:使用Docker Swarm
# 在第一臺(tái)機(jī)子上初始化Swarm節(jié)點(diǎn) $ docker swarm init # 查看Swarm集群token信息 $ docker swarm join-token manager 或者 $ docker swarm join-token worker # 在第二臺(tái)機(jī)子上使用上述token信息加入Swarm集群 $ docker swarm join --token# 在Swarm集群中啟動(dòng)服務(wù) $ docker service create --replicas<數(shù)量>--name<服務(wù)名><服務(wù)容器名>
此時(shí),兩臺(tái)機(jī)子中的Docker Swarm節(jié)點(diǎn)已經(jīng)互相連接,可以通過(guò)docker service
命令進(jìn)行服務(wù)的管理操作。
方式二:使用Docker網(wǎng)絡(luò)
# 在第一臺(tái)機(jī)子上創(chuàng)建網(wǎng)絡(luò) $ docker network create --driver overlay<網(wǎng)絡(luò)名># 在第一臺(tái)機(jī)子上啟動(dòng)容器,并加入網(wǎng)絡(luò) $ docker run -d --network=<網(wǎng)絡(luò)名>--name<容器名><鏡像名># 在第二臺(tái)機(jī)子上啟動(dòng)容器,并加入同一網(wǎng)絡(luò) $ docker run -d --network=<網(wǎng)絡(luò)名>--name<容器名><鏡像名># 驗(yàn)證容器互相能夠訪問(wèn) $ docker exec -it<容器A名稱>ping<容器B IP地址>
以上兩種方法都可以實(shí)現(xiàn)Docker容器之間的通信。用戶可根據(jù)實(shí)際情況選擇不同的方式來(lái)實(shí)現(xiàn)兩臺(tái)機(jī)子之間的Docker容器通信。