Docker - 如何在创建新网络时设置接口名称

21

创建一个新网络后使用以下命令:

docker network create test-net

在主机上运行ifconfig,会列出一个新的接口名称:

br-f2b630e4e141 Link encap:Ethernet  HWaddr 02:42:48:fe:cb:86  
          inet addr:172.18.0.1  Bcast:0.0.0.0  Mask:255.255.0.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
  1. 有没有办法创建这个网络并指定 iface 名称,比如 docker1 或者 test-net

  2. 对于 docker-compose,我们是否也可以在 docker-compose.yml 文件中指定 iface 名称?


你是否查阅了文档 - Rao
@Rao,我再次检查了一下,似乎我找到了一些线索 :-) - tgogos
1个回答

40

1. 使用Docker网络命令

有一个--opt选项,可以像这样使用:

docker network create --opt com.docker.network.bridge.name=br_test test-net

看起来它可以正常工作:

$ ifconfig
br_test   Link encap:Ethernet  HWaddr 02:42:8f:3b:24:32  
          inet addr:172.18.0.1  Bcast:0.0.0.0  Mask:255.255.0.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

在这里找到关于--opt的信息:https://docs.docker.com/engine/userguide/networking/#the-dockergwbridge-network

2. 使用docker-compose

docker-compose.yml中:

networks:
  test-net:
    driver: bridge
    ipam:
     driver: default
     config:
       - subnet: 172.100.0.0/16
    driver_opts:
      com.docker.network.bridge.name: br_test

1
请指定适用于选项 com.docker.network.bridge.name 的 docker-compose 版本。 - belabrinel
@belabrinel 发现它仍然适用 https://docs.docker.com/v17.09/engine/userguide/networking/work-with-networks/ - Thiago Conrado
注意:错误“无法检查桥接接口的存在性:数值结果超出范围”表示指定的接口名称过长。 - Anton Korneychuk
版本3.7可用。 - Andriy Ivanchenko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接