我一直在尝试遵循大量指南,以了解如何使用macvlan驱动程序配置具有静态IP的设备,但是没有成功。我使用macvlan驱动程序是因为我想将其绑定到特定的接口,我认为使用桥接驱动程序是不可能的。
从另一台主机ping该地址时,我只是超时。这是预期的吗?
version: '3.4'
services:
test-box:
image: nginx:latest
networks:
test-net:
ipv4_address: 192.168.1.150
networks:
test-net:
driver: macvlan
driver_opts:
parent: enp1s0f1.30
ipam:
config:
- subnet: 192.168.1.0/24
我还尝试了版本2的变体。
version: '2.3'
services:
test-box:
image: nginx:latest
networks:
test-net:
ipv4_address: 192.168.1.150
networks:
test-net:
driver: macvlan
driver_opts:
parent: enp1s0f1.30
ipam:
config:
- subnet: 192.168.1.0/24
gateway: 192.168.1.1
ip_range: 192.168.1.0/24
我正在将Ubuntu 18.04 LTS作为主机系统。
注意:这是一个涉及更多的docker-compose文件的简化示例,在该文件中,我希望运行多个具有各自IP的框,这些框都绑定到特定接口。我需要配置一个静态IP,因为外部主机将需要使用其中一个容器。
答案 0 :(得分:3)
需要启用NIC的混杂模式。
ifconfig eth1 up
ifconfig eth1 promisc
答案 1 :(得分:-3)
docker run -p 10.20.30.40:80:8888
将告诉Docker启动一个具有端口80的容器,该端口的IP地址为10.20.30.40,该IP地址被路由到该容器中的端口8888。这是开箱即用的功能,不需要特殊的网络配置。您不需要macvlan或任何静态IP配置(您确实需要知道要绑定到的接口的主机IP地址)。