Раньше у меня была Sun Virtual Box, и я использовал vpn в этом.Но теперь, прочитав о docker, я захотел попробовать vpn внутри docker
. Я создал образ и запустил свой контейнер с vpn.
Проблема, которую я обнаружил, заключается в том, что скорость docker vpnнамного медленнее, чем VM
Затем я попытался запустить контейнер с --network=host
, тогда скорость vpn хорошая.
Но проблема в том, что теперь хост-машина также использует vpn.
Я хочу, чтобы vpn был изолирован для докера и хост не был затронут.
Я обнаружил некоторые изменения, когда я запускаю докер с --network=host
и запускаю vpn
Перед запускомконтейнер и впн в нем:
на хосте:
$ ip route
default via 192.168.43.1 dev wlp3s0 proto dhcp metric 600
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
192.168.43.0/24 dev wlp3s0 proto kernel scope link src 192.168.43.193 metric 600
А вот iptables:
$ iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy DROP)
target prot opt source destination
DOCKER-USER all -- anywhere anywhere
DOCKER-ISOLATION-STAGE-1 all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain DOCKER (1 references)
target prot opt source destination
Chain DOCKER-ISOLATION-STAGE-1 (1 references)
target prot opt source destination
DOCKER-ISOLATION-STAGE-2 all -- anywhere anywhere
RETURN all -- anywhere anywhere
Chain DOCKER-ISOLATION-STAGE-2 (1 references)
target prot opt source destination
DROP all -- anywhere anywhere
RETURN all -- anywhere anywhere
Chain DOCKER-USER (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Теперь после запуска докера используйте следующую команду:
$ docker run --rm -it --network=host --privileged -v /home/web_dev/radhanath_google_search/mapping:/mapping --name test archlinux/test /usr/bin/bash
на хосте:
# ip route
0.0.0.0/1 via 10.110.14.1 dev tun0
default via 192.168.43.1 dev wlp3s0 proto dhcp metric 600
10.110.14.0/23 dev tun0 proto kernel scope link src 10.110.14.170
116.193.159.75 via 192.168.43.1 dev wlp3s0
128.0.0.0/1 via 10.110.14.1 dev tun0
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
192.168.43.0/24 dev wlp3s0 proto kernel scope link src 192.168.43.193 metric 600
и iptables
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy DROP)
target prot opt source destination
DOCKER-USER all -- anywhere anywhere
DOCKER-ISOLATION-STAGE-1 all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere 192.168.0.0/16
ACCEPT all -- anywhere 10.0.0.0/8
ACCEPT all -- anywhere 172.16.0.0/12
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere www.sublimetext.com
ACCEPT all -- anywhere 116-193-159-75.pacswitch.com
Chain DOCKER (1 references)
target prot opt source destination
Chain DOCKER-ISOLATION-STAGE-1 (1 references)
target prot opt source destination
DOCKER-ISOLATION-STAGE-2 all -- anywhere anywhere
RETURN all -- anywhere anywhere
Chain DOCKER-ISOLATION-STAGE-2 (1 references)
target prot opt source destination
DROP all -- anywhere anywhere
RETURN all -- anywhere anywhere
Chain DOCKER-USER (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Я новичок в ip route и iptables.Но подумал, что при использовании --network=host
изменились маршруты ip и iptables, а сеть хоста и сеть докера одинаковы.Но если не использовать, то скорость vpn очень низкая, но vpn работает изолированно в докере, а хост изолирован без vpn
Моя цель - запустить хост без vpn и docker для запуска в vpn без проблем со скоростью, когдапо сравнению с ВМ