Docker网络管理以及固定IP

Lear 2024-07-23 09:10:00
Categories: Tags:

Docker有四种网络模式
host:容器和主机共享一个网络。
container:容器和另外一个容器共享一个网络。
none:不进行网络连接。
bridge:默认配置,桥接模式。

host模式:此模式创建的容器没有自己独立的网络命名空间,是和物理机共享一个network namespace,并且共享物理机的所有端口与ip,并且这个模式认为是不安全的。
container模式:此模式和host模式很类似,只是此模式创建容器共享的是其他容器的ip和端口而不是物理机,此模式容器自身是不会配置网络和端口,创建此模式容器进去后,你会发现里边的ip是你所指定的那个容器ip并且端口也是共享的,而且其它还是互相隔离的,如进程等。
none模式:此模式下创建容器是不会为容器配置任何网络参数的,如:容器网卡、ip、通信路由等,全部需要自己去配置。
bridge模式:docker网络隔离基于网络命名空间,在物理机上创建docker容器时会为每一个docker容器分配网络命名空间,并且把容器ip桥接到物理机的虚拟网桥上。

查看docker默认network
docker network ls

root@host:~# docker network ls
NETWORK ID NAME DRIVER SCOPE
c6ca4216c8de bridge bridge local
8365f33d167c host host local
af0c63681c4f none null local

Docker默认的网络模式网关是172.17.0.1。我们可以创建新的bridge网络供容器使用。
docker network create –driver bridge –subnet 166.166.0.0/16 –gateway 166.166.0.1 mynet
注意:网段尽量不要跟主机重复。
166.166.0.0/16 其中末尾的16表示最多支持65535个ip地址,范围是166.166.0.2到166.166.255.255。
可以改为24,最多支持254个ip,范围是166.166.0.2到166.166.0.255。
mynet是创建的网络名称,可以自己改变。

以后创建容器的话加上一下参数是可以指定容器的网络和ip的
–net mynet –ip 166.166.具体值.具体值

修改已经创建的容器的网络 解除容器原先的网络
docker network disconnect 网络 容器

例如:
docker network disconnect bridge mysql8

重新绑定网络和指定ip 也可以不指定ip
docker network connect 网络 –ip 166.166.0.3 容器

重启容器
docker restart 容器

查看结果
docker inspect 容器