- 論壇徽章:
- 2
|
我在host1上運行docker,容器里運行了redis sentinel,并把端口6379,26379等等都暴露出來了。
我在host2上,運行redis-cli,連接sentinel查詢master地址時,
返回的是docker network的內(nèi)網(wǎng)地址(172.xxx...),而不是host1的IP。
問題是從host2無法連接到docker內(nèi)網(wǎng)地址。
請問,是不是需要在redis配置文件中,明確寫主機(host1)的IP,而不是容器的IP?
由于每次容器啟動時IP地址都是隨機的,所以一些集群的服務(像zookeeper,redis sentinel),
配置時用ip地址來配置是不行的,需要用容器的主機名來配置。
(docker run 可以用--name設(shè)置主機名,這樣docker network內(nèi)可以通過DNS解析出主機。)
我不理解的是,像redis sentinel這樣,需要把master的IP返回給客戶端的情況,
怎樣控制返回的ip是docker內(nèi)網(wǎng)ip,還是主機ip呢?
如果客戶端在docker network中,返回內(nèi)網(wǎng)ip即可,
如果客戶端在其他主機,就需要返回主機ip。 |
|