创建 VLAN

创建 VLAN

我有一台安装了 docker 的 Windows 10 机器。主机连接到私有 LAN 192.168.0.0/24。我的容器应用程序公开一个 UDP 和一个 TCP 端口。我想运行容器的多个实例,并让它们都可以被同一网络上的其他(非 docker)机器访问。我必须能够使用定义的端口号,而不是随机生成的端口号。我该怎么做?

答案1

既然没人回复,而且我自己也搞清楚了,我就自己回答这个问题吧。当然,可能还有其他方法可以解决这个问题……

创建 VLAN

抄袭自https://docs.docker.com/machine/drivers/hyper-v/

  • 从“开始”菜单中,打开 Windows 10 Hyper-V 管理器
  • 在右侧单击“虚拟交换机管理器”
  • 创建新的外部网络
  • 给它一个简洁的名字
  • 从下拉列表中选择您的网络设备(该设备必须具有活动连接!)
  • 重启!

创建节点/机器

容器在主机上将具有 1:1 的端口映射,因此我们将为每个想要运行的容器创建一台机器。

  • 创建一个瘦虚拟机(现在只做一个,然后根据需要对每个容器重复这些指令):docker-machine create --driver hyperv --hyperv-virtual-switch "concise_name" My_Node_1
  • 以管理员权限启动 Powershell
  • 将 shell docker 命令的上下文切换到新机器: docker-machine env My_Node_1
  • 将输出的最后一行(不带 #)复制并粘贴到 shell 并运行它。它将类似于:& "C:\Program Files\Docker Toolbox\docker-machine.exe" env My_Node_1 | Invoke-Expression 从现在开始,所有docker命令都将在机器上执行My_Node_1

构建并运行

  • cd 到包含 Dockerfile 的目录
  • 构建图像,例如docker build . -t image_name
  • 现在使用以下方法运行一个容器(每台机器只能运行一次)--net=host,例如docker run -i -t -P -d --net=host --rm image_name

重复“创建节点/机器”步骤,创建所需数量的容器

相关内容