目錄
- 前言
- 1. 修改Docker宿主機的Docker網絡
- 2. 啟動容器時指定IP
- 3. 啟動容器后修改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地址的幾種常用方法。根據實際場景選擇適用的方案即可。