Docker for Mac 容器IP配置问题

  1. 宿主机Mac相关信息

    en0: inet 192.168.2.117 netmask 0xffffff00 broadcast 192.168.2.255
  2. Docker for Mac 相关信息

    # ip addr show eth0
    4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether c0:ff:ee:c0:ff:ee brd ff:ff:ff:ff:ff:ff
        inet 192.168.65.2/29 brd 192.168.65.7 scope global eth0
  3. 创建macvlan网络与容器

    docker network create -d macvlan --subnet=192.168.2.0/24 --gateway=192.168.2.1  -o parent=eth0 pub_net
    
    docker run --net=pub_net --ip=192.168.2.130 -itd centos /bin/sh
  4. 进入容器查看网络信息

    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.2.130  netmask 255.255.255.0  broadcast 0.0.0.0
            inet6 fe80::42:c0ff:fea8:282  prefixlen 64  scopeid 0x20<link>
            ether 02:42:c0:a8:02:82  txqueuelen 0  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 9  bytes 718 (718.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    问题:在容器内无法上网,另外broadcast 0.0.0.0这个是不是有问题呢?我的目的是给容器分配一个跟宿主机同网段的IP,跪求解答。。。

阅读 15.8k
2 个回答

https://github.com/SixQuant/e...

Docker for Mac/Windows
  开发环境中有时候想把 Docker 容器实例当做正常的虚拟机来用,换句话说就是本机和Docker容器实例处于同一个子网中,本机可以直接通过IP地址访问Docker容器实例,而不是通过中间端口映射的方式来访问!

最终效果:

MacBook、VirtualBox、Docker容器实例相互之间可以自由的用IP地址互相访问,就像正常的虚拟机一样。
可以给 docker 容器指定静态 IP 地址
容器实例使用统一的DNS服务器
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题