docker用网关ip替换容器ip

时间:2017-09-06 09:31:53

标签: docker

我有一个从容器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而不是容器A ip为172.24.0.35

我没有对网络进行任何更改。

这是容器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

1 个答案:

答案 0 :(得分:0)

172.24.0.1是在asterisk网络的已创建网络接口上为主机提供的IP地址。

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