docker网卡的IP地址修改

Docker容器启动后,默认会在主机上分配一个网卡,该网卡对应一个网络命名空间,并在这个网络命名空间下随机分配一个IP地址。
如果想修改Docker容器的IP地址,有以下几种方法:

  1. 修改Docker宿主机的Docker网络
    可以在Docker主机上修改/etc/docker/daemon.json文件,添加如下内容:
{
    
    
  "bip": "192.168.1.5/24",  
}

这会将Docker容器分配IP的子网修改为192.168.1.0/24,并且默认网关设置为192.168.1.1
重启Docker后生效,此后创建的容器会在此子网分配IP。
2. 启动容器时指定IP
使用--ip参数可以指定容器的IP地址:

docker run -it --ip 192.168.1.10 ubuntu:18.04

这会强制分配192.168.1.10这个IP给新启动的容器。
3. 启动容器后修改IP
可以在启动容器后,直接修改容器内的网络配置来变更IP地址。
首先,要定位到容器的网络命名空间。可以使用:

docker inspect 容器id|name    # 查看"NetworkSettings"下的"SandboxKey"值 

然后使用ip netns exec命令进入该网络命名空间:

sudo ip netns exec 沙盒KEY /bin/bash

在该命名空间下修改网络配置即可。例如:

ip addr add 192.168.1.15/24 dev eth0
ip link set eth0 up 

这会将eth0网卡的IP设置为192.168.1.15
退出后容器的IP就已经修改。
需要注意,如果容器已经把旧IP写入到其它容器或者宿主机的配置(例如/etc/resolv.conf)中,那么还需要相应修改那些地方的配置,否则可能出现网络异常的情况。
以上是修改Docker容器IP地址的几种常用方法。根据实际场景选择适用的方案即可。

猜你喜欢

转载自blog.csdn.net/qq_44534541/article/details/130528330