Способ назначить контейнер Linux для той же локальной сети, что и хост? - PullRequest
0 голосов
/ 31 мая 2018

Моя цель - сделать так, чтобы мой контейнер Linux работал на той же локальной сети, что и хост и другие устройства.Потому что мне нужно часто использовать nmap для сканирования mac-адресов устройств на локальной сети.К сожалению, сканирование nmap работает только тогда, когда все эти машины находятся в одной подсети.

Я пытался сделать это несколькими способами, но все не удалось.Хотя есть много инструкций о том, как это сделать, похоже, что они все предназначены для Docker для Linux.

Например, очень подробные инструкции от stackoverflow: Docker на CentOS с мостом к сети LAN также не работает для меня.


То, что я пробовал:

Macvlan:

похоже, что Docker для Windows 10 не поддерживает Macvlanиз-за того, что у меня нет возможности сделать сетевой адаптер Windows родительским ..

Pipework:

, который работает только в системе Linux, но я использую Windows 10 ..

Измените bip из daemon.json:

Я попытался, и установит для docker0 статический IP, тогда контейнер все еще не сможет пропинговать устройства в локальной сети.Я полагаю, это связано с тем, что контейнер размещен в NAT, и изменение IP-адреса моста docker0 не сможет достичь моей цели.

Запустите образ с --net host:

, который ifconfig показывает:

docker0   Link encap:Ethernet  HWaddr 02:42:2d:b8:0b:7c
          inet addr:172.17.0.1  Bcast:172.17.255.255  Mask:255.255.0.0
          inet6 addr: fe80::42:2dff:feb8:b7c/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:540 (540.0 B)

eth0      Link encap:Ethernet  HWaddr 02:50:00:00:00:01
          inet addr:192.168.65.3  Bcast:192.168.65.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:111 errors:0 dropped:0 overruns:0 frame:0
          TX packets:147 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:9701 (9.7 KB)  TX bytes:10384 (10.3 KB)

hvint0    Link encap:Ethernet  HWaddr 00:15:5d:0d:52:27
          inet addr:10.0.75.2  Bcast:0.0.0.0  Mask:255.255.255.0
          inet6 addr: fe80::215:5dff:fe0d:5227/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:359819 errors:0 dropped:1303 overruns:0 frame:0
          TX packets:1157 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:54740692 (54.7 MB)  TX bytes:103676 (103.6 KB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:57 errors:0 dropped:0 overruns:0 frame:0
          TX packets:57 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:5732 (5.7 KB)  TX bytes:5732 (5.7 KB)

Он может пропинговать все в моей подсети, но IP все еще не из моей подсети, а 192.168.65.3.

Затем я пытался изменить eth0 ip на статический IP, отредактировав /etc/network/interface.d/eth0, после перезапуска сетевой службы, eth0 ip из моей подсети изменился на статический ip, носеть больше не работает.

ПОЖАЛУЙСТА, если кто-нибудь здесь знает, как разместить Linux-контейнер Windows 10 в локальной сети так же, как хост.


My Docker Version

Client:
 Version:      18.03.1-ce
 API version:  1.37
 Go version:   go1.9.5
 Git commit:   9ee9f40
 Built:        Thu Apr 26 07:12:48 2018
 OS/Arch:      windows/amd64
 Experimental: false
 Orchestrator: swarm

Server:
 Engine:
  Version:      18.03.1-ce
  API version:  1.37 (minimum version 1.12)
  Go version:   go1.9.5
  Git commit:   9ee9f40
  Built:        Thu Apr 26 07:22:38 2018
  OS/Arch:      linux/amd64
  Experimental: false

1 Ответ

0 голосов
/ 06 июня 2018

Я разместил еще один вопрос по аналогичной проблеме здесь: (РАЗРЕШЕНО) DOCKER: Контейнер Linux в Windows 10, как использовать nmap для сканирования MAC-адреса устройства

И собственно их целиточно так же, поместив Docker для Windows в вашу локальную сеть (физическую сеть).

Чтобы достичь этой цели, я прочитал сотни и сотни страниц и, наконец, выяснил, как это сделать, дляподробную информацию см. на следующих страницах.

Пользователь Windows 10 HOME, вы можете обратиться к этой странице для настройки виртуального ящика / Пользователь Windows 10 PROFESSIONAL / ENTERPRISE, вы можете обратиться к этой странице для hyperV https://hub.docker.com/r/qtimmylin/evt_platform/

Извините, я не могу выпустить изображение из-за конфиденциального содержимого, но я считаю, что инструкции достаточно понятны для всех, даже если вы новичок в Docker.

Надеюсь, это достаточно полезно, так что вы немне не нужно тратить на это целую неделю, как я.

...