Docker外部可路由集装箱 如何在单个VM上创建外部可路由的docker容器?

Docker外部可路由集装箱 如何在单个VM上创建外部可路由的docker容器?,docker,docker-networking,Docker,Docker Networking,这是我的困境。。。我正在尝试设置运行在Ubuntu 16.04虚拟机上的1..n容器,这些容器提供了一个唯一的外部可路由IP地址,并允许每个容器侦听相同的端口(避免主机上的端口冲突) 我已经开始向NIC添加IP地址,然后将它们分配给各个容器,这是可行的,但这是一个相当麻烦的解决方案。我还尝试实现一个MACVlan Docker网络,认为它可以解决这个问题,但没有一个容器可以到达网络之外(即,不能在容器和另一个虚拟机之间ping)。从我读到的有关MACVlan的内容中,我了解到容器无法与主机通信,

这是我的困境。。。我正在尝试设置运行在Ubuntu 16.04虚拟机上的1..n容器,这些容器提供了一个唯一的外部可路由IP地址,并允许每个容器侦听相同的端口(避免主机上的端口冲突)

我已经开始向NIC添加IP地址,然后将它们分配给各个容器,这是可行的,但这是一个相当麻烦的解决方案。我还尝试实现一个MACVlan Docker网络,认为它可以解决这个问题,但没有一个容器可以到达网络之外(即,不能在容器和另一个虚拟机之间ping)。从我读到的有关MACVlan的内容中,我了解到容器无法与主机通信,但我认为它们能够与同一子网/网络上的其他系统联系。使用MACVLan,容器可以相互通信


是否有人有可能解决我正在寻找的那种实现方案,或者我一直在向VM的NIC添加IP地址?

像nginx proxy这样的反向代理是否无法处理您的场景?可能,但我尝试使用网络配置解决方案并依靠附加服务来解决此问题。您提出的解决方案不是添加一个允许将设计迁移到任何Docker环境的单一服务,而是需要更改不可移植的路由和防火墙,再加上将每个容器绑定到单个IP,消除了使用容器的大部分好处。像nginx proxy这样的反向代理是否无法处理您的场景?它可能会,但我尝试使用网络配置解决方案并依靠附加服务来解决此问题。您提出的解决方案不是添加一个允许将设计迁移到任何Docker环境的单一服务,而是需要更改不可移植的路由和防火墙,再加上将每个容器绑定到单个IP,消除了使用容器的大部分好处。