请问docker daemon应该如何配置才能在新建network为bridge的容器时使用自定义网段

场景如下
我在服务器上安装了docker环境,服务器上除了回环网卡外只有一块网卡,网段为10.69.16.0/24,安装完docker后docker0的网段为172.17.0.0/16,后面我将/etc/docker/daemon.json改为

{
    "bip": "192.168.0.1/24"
}

改完后重启docker,docker0网段变为了192.168.0.1/24,然后我启动docker-compose,文件内容如下:

version: '3'
services:
  app:
    image: redis
    ports:
      - "6379:6379"

启动完成后redis容器新建的网卡网段为172.18.0.0/16

我的问题:

  1. 服务器上没有172网段的网卡,为什么新建的docker0为172网段的?
  2. 我已经将docker0改为了192网段的,为什么新建的容器在使用默认网络的情况下创建的网卡网段仍是172网段的?
阅读 3.6k
1 个回答

问题一:docker0是虚拟网卡,区别于物理网卡,如你所说,docker0的网段可以使用daemon.json自定义修改;

问题二:docker-compose创建容器的时候会自动创建新的网桥;可以在docker-compose的yml文件中指定需要使用网段;可以参考如下:

version: '2.3'

networks:
  my-network:
    driver: bridge
    ipam:
      driver: default
      config:
      - subnet: 192.168.3.0/24
        gateway: 192.168.3.1
services:
  myservice1:
    ......
    networks:
     - my-network

附官方文档:https://docs.docker.com/compo...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题