在Docker中设置容器IP地址有几种不同的方法,具体取决于您的网络需求和Docker网络模式。以下是主要的设置方法:
docker run --network bridge --ip 172.17.0.100 -it ubuntu
注意:这种方法在默认的bridge
网络中通常不起作用,因为Docker不允许直接为默认桥接网络分配静态IP。
这是推荐的方法:
# 创建自定义网络
docker network create --subnet=172.18.0.0/16 mynet
# 运行容器并指定IP
docker run --network mynet --ip 172.18.0.100 -it ubuntu
容器直接使用宿主机的网络栈和IP:
docker run --network host -it ubuntu
适合需要容器拥有独立MAC地址和IP的情况:
# 创建macvlan网络
docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth0 mymacvlan
# 运行容器并指定IP
docker run --network mymacvlan --ip 192.168.1.100 -it ubuntu
类似于macvlan但不创建新的MAC地址:
# 创建ipvlan网络
docker network create -d ipvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth0 myipvlan
# 运行容器并指定IP
docker run --network myipvlan --ip 192.168.1.100 -it ubuntu
bridge
网络中,Docker会自动分配IP地址,通常不允许手动指定要查看容器的IP地址,可以使用:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器名或ID
或者
docker inspect 容器名或ID | grep IPAddress
希望这些方法能帮助您为Docker容器设置所需的IP地址。根据您的具体需求选择最适合的网络模式。