Docker доступ к службе контейнера сети хоста под Windows - PullRequest
0 голосов
/ 02 августа 2020

Если я запустил контейнер docker, используя сеть хоста (--network host), для любых служб, работающих в контейнере, их открытый порт может быть напрямую доступен с хоста, верно?

Я всегда так думал, пока не Я запускаю контейнер docker с использованием сети хоста под Windows -

  • ip a s eth0 показывает, что IP-адрес моего контейнера 192.168.65.3
  • route | awk '/^default/ { print $2 }' дает 192.168.65.1
  • Однако мой хост-компьютер имеет IP-адрес 10.66.xx.xx

То есть IP-адрес контейнера и IP-адрес хоста совершенно разные. В отличие от того, что говорит https://www.metricfire.com/blog/understanding-dockers-net-host-option/.

В любом случае, если я запускаю какие-либо службы в контейнере, как открыть их порт, чтобы к ним можно было получить прямой доступ с хоста? (Я думал, что с сетью хоста (--network host) вам больше не нужно сопоставлять порт от контейнера к хосту)

thx

docker version
Client: Docker Engine - Community
 Version:           19.03.8
 API version:       1.40
 Go version:        go1.12.17
 Git commit:        afacb8b
 Built:             Wed Mar 11 01:23:10 2020
 OS/Arch:           windows/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.8
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.17
  Git commit:       afacb8b
  Built:            Wed Mar 11 01:29:16 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.2.13
  GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

1 Ответ

2 голосов
/ 02 августа 2020

Сеть хоста не поддерживается на Windows:

Сетевой драйвер host работает только на хостах Linux и не поддерживается на Docker Desktop для Ma c , Docker Desktop для Windows или Docker EE для Windows Server.

https://docs.docker.com/network/network-tutorial-host/

Я бы посоветовал попробовать -p вариант для docker run, поскольку он поддерживается Windows.

В качестве альтернативы один пользователь форума предлагает использовать VirtualBox в мостовом режиме для установки Linux, который затем может использовать хост-сеть. YMMV.

...