Маршруты с большими префиксами (, такие как ваш 172.18.100.101
маршрут хоста ), будут иметь более высокий приоритет, чем маршруты с меньшим префиксом (, такие как маршруты /16, добавленные докером ). Итак, ваш первоначальный подход должен работать. Однако, если 172.18.100.101
не доступен напрямую через eth0
, вам также потребуется указать для него шлюз.
например:
ip route add 172.18.100.101/32 via 10.x.x.x dev eth0
Задавая этот вопрос, я совершил очень серьезную ошибку, не осознав, что порты, которые я открываю, находятся в другой сети, чем localhost
. Итак, все расследование со стороны хоста показало мне, что порт отказывает в доступе, потому что на 0.0.0.0:8000
ничего не работает, потому что моя программа работает на localhost:8000
.
Чтобы решить эту проблему и сделать программу доступной из операционной системы хоста, мне просто нужно было изменить nginx
файл конфигурации, который уже присутствовал на моей машине, и вставить общую папку внутрь /var/www/html
.
Пожалуйста, посмотрите это , если вы хотите узнать, как разрешить nginx использовать общие папки гораздо более удобным способом вместо копирования и вставки после каждого редактирования (, потому что кто захочет это сделать.. ).