0%

Docker使用macvlan网络创建容器

docker macvlan方式创建容器可以使容器具有独立的IP和全端口,某一些程序运行能更方便,不受限于宿主机的端口不够用!

创建macvlan网络

1
2
3
4
5
6
docker network create -d macvlan \
-o parent=eth0 \
--subnet 192.168.2.0/24 \
--gateway 192.168.2.1 \
--ip-range 192.168.2.16/28 \
macvlan1

参数解释

  • -o parent:实体网卡名称
  • –subnet:子网CIDR格式
  • –gateway:网关地址
  • –ip-range:IP分配范围,CIDR格式

    CIDR格式的IP分配范围可使用 –> CIDR子网计算器 计算出来!

  • –aux-address:排除 IP 地址(可多个)

    –aux-address示例:–aux-address=”host=192.168.2.20”


查看macvlan创建是否成功

1
docker network ls

输出如下:macvlan1即是刚刚创建的macvlan网络

1
2
3
4
5
NETWORK ID     NAME       DRIVER    SCOPE
5f0a5cf51be2 bridge bridge local
3662e4114d7c host host local
0263f95a7f47 macvlan1 macvlan local
d4dda61252f6 none null local

创建使用macvlan的容器

以创建Alpine为例

1
2
3
4
5
docker run -td \
--name=mac1 \
--network=macvlan1 \
alpine:latest \
sh

参数解释

  • -td:开启tty,并后台运行容器
  • –name:指定名称
  • –network:指定使用的网络
  • –ip:指定容器IP
  • –dns:指定容器DNS