Моя цель - сделать так, чтобы мой контейнер 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