如何通过主机';Docker中我的容器的IP地址

如何通过主机';Docker中我的容器的IP地址,docker,lxc,Docker,Lxc,我的机器上有多个NIC,因此有多个外部可路由IP地址 当我启动一个容器时,我想使容器的虚拟eth0具有我的一个公共可见IP地址的IP地址 这是因为我的每个应用程序都查询其本地IP并通过专有协议与外部通信,所以所有的iptables技巧都无法工作 我该怎么做?我不确定这是否是一个好的做法,但您可以在启动容器时传递--net选项: docker-run--net=host… 从man docker run: --net="bridge" Set the Network mode

我的机器上有多个NIC,因此有多个外部可路由IP地址

当我启动一个容器时,我想使容器的虚拟eth0具有我的一个公共可见IP地址的IP地址

这是因为我的每个应用程序都查询其本地IP并通过专有协议与外部通信,所以所有的iptables技巧都无法工作


我该怎么做?

我不确定这是否是一个好的做法,但您可以在启动容器时传递
--net
选项:

docker-run--net=host…

man docker run

   --net="bridge"

      Set the Network mode for the container
   'bridge':  creates  a  new network stack for the container on the docker bridge
   'none': no networking for this container
   'container:': reuses  another  container network stack
   'host':   use  the  host  network  stack inside the container.  Note: the host mode  gives  the  container  full access  to local system services such as D-bus and is therefore considered insecure.
当您说“查询其本地IP”时,您似乎假设机器将恰好有一个IP地址,或者程序可以确定哪个IP地址最好提供给另一台机器。这两种假设都不可靠。你不能直接把你想让它使用的IP地址传给应用程序吗?