docker安装后,默认会创建三种网络类型,bridge、host和none,可通过如下命令查看
sudo docker network ls
- bridge:网络桥接
默认情况下启动、创建容器都是用该模式,所以每次docker容器重启时会按照顺序获取对应ip地址,这就导致容器每次重启,ip都发生变化 - none:无指定网络
启动容器时,可以通过–network=none,docker容器不会分配局域网ip - host:主机网络
docker容器的网络会附属在主机上,两者是互通的
创建一个有固定IP的容器方法如下:
创建一个子网(SubNet),并指定网段
#语法格式:
docker network create --subnet=[网段] [子网名称]
#示例
sudo docker network create --subnet=192.168.0.0/16 mysubnet
关于网段划分的相关知识:
https://www.hash070.top/archives/ip-and-subnet.html
启动容器时指定子网
例如启动一个unbutu容器,使用–net 来指定子网,使用–ip 来指定容器IP,ip的范围要在该子网的范围内。
sudo docker run -it --name userserver --net mysubnet --ip 192.168.0.2 ubuntu /bin/bash