docker使用网关IPreplace容器IP

我有一个从容器A到容器B的请求。

容器A的IP是:172.24.0.35

容器B的ip是:172.24.0.33

检查容器B上的请求,发送者IP是172.24.0.1。 为什么发件人ip来自172.24.0.1,而不是来自172.24.0.35的容器A ip

我没有做任何改变的networking。

这是我的容器A的撰写文件

asterisk: extends: file: common.yml service: asterisk depends_on: - base ports: - "5038:5038" - "5060:5060/tcp" - "5060:5060/udp" - "16380-16420:16380-16420/udp" volumes_from: - base volumes: - /var/log/asterisk/ - /dev/shm/ - /dev/dahdi:/dev/dahdi - ./etc/conf/asterisk:/etc/asterisk/:ro networks: default: aliases: - asterisk 

集装箱B

 asterisk-agent: extends: file: common.yml service: asterisk-agent depends_on: - base volumes_from: - base volumes: - /var/log/asterisk/ - /dev/shm/ - /dev/dahdi:/dev/dahdi - ./etc/conf/asterisk/agent/:/etc/asterisk/:ro networks: default: aliases: - asterisk-agent 

172.24.0.1是在创build的asterisknetworking的networking接口上提供给主机的IP地址。

默认情况下,对于docker bridgenetworking,如果进入容器并运行route命令,则可以看到默认网关为172.24.0.1 ,它对应于networking接口上的主机ip。 所以你在容器B中看到的是主机的IP,来自容器A的请求被路由到该主机。