使用默认Docker子网为容器设置静态IP

xlpyo6sf  于 2023-02-11  发布在  Docker
关注(0)|答案(1)|浏览(121)

我需要在一个docker容器中使用gdbserver。由于在主机中使用gdb是脚本化的,我需要为我的容器设置一个静态IP。
ifconfig的输出为:

docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        inet6 ****::**:****:****:****  prefixlen 64  scopeid 0x20<link>
        ether **:**:**:**:**:**  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 60  bytes 8931 (8.9 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

我试过:

docker run --name "myContainerName" --ip 172.17.0.124 --rm -it -p 7777:7777 myImgae /bin/bash

但是在Docker中,我得到了ifconfig的输出:

eth0      Link encap:Ethernet  HWaddr ***:**:**:**:**:**
          inet addr:172.17.0.2  Bcast:172.17.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:16 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2282 (2.2 KiB)  TX bytes:0 (0.0 B)

我的容器的IP是172.17.0.2,而不是我想要的172.17.0.124
所以我想知道ip选项如何与默认子网(docker0)一起工作

x33g5p2x

x33g5p2x1#

正如答案所建议的那样,我找到了一个变通方法,即对我的debuggind会话使用“localhost”,而不是使用特定的ip地址

相关问题