Если я запустил контейнер 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