查看docker 网络列表
docker network ls
docker network 相关命令
查看网络详情
查看容器信息,容器的ip
docker inspect 容器id
1.创建自定义网络(默认是桥接模式)
方式1:
docker network create 网络名称
方式2:指定IP和网关
docker network create --subnet=172.10.0.0/16 --gateway=172.10.0.1 mynetwork
方式3:创建网络并绑定物理网卡
网络模式 macvlan
macvlan 可以将虚拟网卡跟主机共用同一网段。
docker network create -d macvlan --subnet=172.16.86.0/24 --gateway=172.16.86.1 -o parent=eth0 网络名称
-o parent=eth0 将虚拟网络绑定网卡
docker network create -d macvlan --subnet=[网段] --gateway=[网关] -o parent=[网卡] macvlan
例如,我查询到的网卡名是eth0,网关是192.168.1.1,这样我可以创建一个名字叫new_macvlan01的macvlan网络如下:
docker network create -d macvlan --subnet=192.168.1.1/24 --gateway=192.168.1.1 -o parent=eth0 new_macvlan01
之后如果想给容器一个固定IP,可以使用如下命令创建一个容器,并给它一个固定IP:
docker run -it --name [容器名] --net macvlan --ip=[固定IP] [镜像名] /bin/bash
例如,我想以centos镜像创建一个名字叫test的容器,并给它一个IP为192.168.1.10
docker run -it --name test --net macvlan --ip=192.168.1.10 centos /bin/bash
2.解除容器绑定的网络
docker network disconnect 网络名称 容器名称
3.为容器重新指定网络
docker network connect 网络名称 容器名称
为容器重新指定网络和ip
docker network connect 网络名称 容器名称 --ip 192.168.252.10
4.重启容器
docker restart 容器名称
5.查看效果
docker inspect 容器名称
Bridge模式
Bridge模式是Docker默认的网络模式,当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,用来连接宿主机和容器,此主机上的Docker容器都会连接到这个虚拟网桥上,虚拟网桥的工作方式和物理交换机类似,这样所有容器就通过交换机连在了一个二层网络中。
macvlan模式
macvlan本身是linxu kernel的模块,本质上是一种网卡虚拟化技术。其功能是允许在同一个物理网卡上虚拟出多个网卡,通过不同的MAC地址在数据链路层进行网络数据的转发,一块网卡上配置多个 MAC 地址(即多个 interface),每个interface可以配置自己的IP,Docker的macvlan网络实际上就是使用了Linux提供的macvlan驱动