使用" localhost"从docker容器内访问本地计算机。 Windows 10

时间:2018-02-16 09:06:11

标签: docker

我想使用chrome-standalone docker镜像来运行我的前端测试:

  1. 启动我在物理机器localhost上公开的环境
  2. 启动一个能够调用物理机器localhost的chrome-standalone容器
  3. 使用chrome-standalone远程Web驱动程序运行selenium测试
  4. 这实际上与Linux机器上的主机network_mode(--net =" host")一起正常工作,但在Windows上我继续得到" localhost拒绝连接"。 / p>

    • 首先,我开始创建一个新的Hyper-V虚拟机,其中一个自定义虚拟交换机连接到外部网络并在其中运行容器(powershell命令为admin):

      $vmSwitch = Get-VMSwitch -Name 'Custom Virtual Switch'
      
      $net = Get-NetAdapter -Name 'Ethernet'
      
      New-VMSwitch -Name "Custom Virtual Switch" -AllowManagementOS $True -NetAdapterName $net.Name
      
      docker-machine create -d hyperv --hyperv-virtual-switch "Custom Virtual Switch" -hyperv-memory 1024 --engine-insecure-registry docker.cirb.lan ChromeDriverVM
      
      & "C:\Program Files\Docker\Docker\Resources\bin\docker-machine.exe" env ChromeDriverVM | Invoke-Expression
      
      docker run -d -P --network="host" -v /dev/shm:/dev/shm selenium/standalone-chrome
      
    • 接下来我尝试调用外部物理机IP,这是第一次调用,但之后我被重定向到localhost,它不再工作了。

    • 我还尝试添加" - add-host LOCAL_IP:localhost"。

    • 最后使用了docker.for.win.localhost名称,同样的问题仍然无法调用物理主机。

    使用链接不会为我做,我将不得不更改一些我无法更改的模块。

0 个答案:

没有答案