docker网卡的IP地址修改
Docker容器启动后,默认会在主机上分配一个网卡,该网卡对应一个网络命名空间,并在这个网络命名空间下随机分配一个IP地址。
如果想修改Docker容器的IP地址,有以下几种方法:
- 修改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地址的几种常用方法。根据实际场景选择适用的方案即可。