首页 > 解决方案 > Docker 无法获取特定 ip

问题描述

嗨,我需要为我的测试自动化程序 sipp 的每个 docker 容器分配一个特定的 ip。

我无法 ping 或 telnet 到192.168.173.215

这是我的配置:

version: '3.3'
services:
  sipp4:
    build: 
      context: .
      dockerfile: Dockerfile
    container_name: sipp4
    networks:
        mynetwork:
            ipv4_address: 192.168.128.2
    volumes:
      - ./sipp-3.4.1/:/opt/app/sipp
    environment:
      - "TZ=America/Los_Angeles"
    ulimits:
      nofile:
        soft: 200000
        hard: 400000
    working_dir: /opt/app/sipp
    command: 192.168.173.215:5060 -sf callerCall.xml -inf callerCall.csv -i 192.168.128.2  -aa -m 1 -trace_msg -t un -skip_rlimit -trace_err  
networks:
  mynetwork:
    ipam:
      driver: default
      config:
       - subnet: 192.168.128.0/18
         gateway: 192.168.128.200

我确定子网和网关,因为我可以为 VMware 虚拟主机分配 IP。

这是docker机器(bash)中的ifconfig

ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.128.2  netmask 255.255.192.0  broadcast 192.168.191.255
        ether 02:42:c0:a8:80:02  txqueuelen 0  (Ethernet)
        RX packets 7  bytes 586 (586.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5  bytes 210 (210.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 3  bytes 1728 (1.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3  bytes 1728 (1.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

这是ip

ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
389: eth0@if390: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:c0:a8:80:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.168.128.2/18 brd 192.168.191.255 scope global eth0
       valid_lft forever preferred_lft forever

另一方面,当我使用下面的配置时,它可以 ping 并访问192.168.173.215并且自动分配 IP 为:172.17.0.1

  sipp1:
    build: 
      context: .
      dockerfile: Dockerfile
    container_name: sipp1
    network_mode: host
    volumes:
      - ./sipp-3.4.1/:/opt/app/sipp
    environment:
      - "TZ=America/Los_Angeles"
    ulimits:
      nofile:
        soft: 200000
        hard: 400000
    working_dir: /opt/app/sipp
    command: ./sipp 192.168.173.215:5060 -sf callerCall.xml -inf callerCall.csv -i 172.17.0.1 -aa -m 1 -trace_msg -t un -skip_rlimit -trace_err

当我使用下面的配置时,它得到了 ip: 172.18.0.2 并且不能再ping任何地方

  sipp4:
    build: 
      context: .
      dockerfile: Dockerfile
    container_name: sipp4
    volumes:
      - ./sipp-3.4.1/:/opt/app/sipp
    environment:
      - "TZ=America/Los_Angeles"
    ulimits:
      nofile:
        soft: 200000
        hard: 400000
    working_dir: /opt/app/sipp
    command: 192.168.173.215:5060 -sf callerCall.xml -inf callerCall.csv -aa -m 1 -trace_msg -t un -skip_rlimit -trace_err

标签: dockerdocker-composesipp

解决方案


推荐阅读