2017-09-06 115 views
0

我有一个请求从容器A到容器B.搬运工更换容器IP

容器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 
+0

是否使用任何码头网络来连接容器? – yamenk

+0

使用默认设置。来自外部IP的请求 - >主机 – moimoi

+0

您可以提供容器B的撰写文件吗?你如何检查IP?和tcpdump? – yamenk

回答

0

172.24.0.1我撰写的文件提供给您的主机所创建的网络接口上为asterisk网络的IP地址。

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

+0

如何设置流量,使容器A通过其接口进行通信。所以一旦到达容器B,源IP是容器A接口,而不是主机IP – moimoi