Доступ к хосту изнутри контейнера - PullRequest
0 голосов
/ 03 ноября 2019

Я пытаюсь подключиться к базе данных, установленной на хост-системе. Теперь аналогичный вопрос уже существует для докера , но я не мог заставить его работать с Подманом, я думаю, потому что сеть работает здесь немного иначе.

Мое решение до сих пор былоиспользуйте --add-host=dbhost:$(ip route show dev cni-podman0 | cut -d\ -f7), но я не уверен, что это хорошая идея, и она не будет работать, когда используется другая сеть.

Каков наилучший подход для достижения этой цели? Возможно, уже задано имя хоста по умолчанию для хоста контейнера?

1 Ответ

0 голосов
/ 04 ноября 2019

Решение с podman идентично описанному в ответе, на который вы предоставили ссылку : маршрут по умолчанию, видимый внутри контейнера, можно использовать для подключения к службам хоста (при условии, что они прослушивают всеадресов или явно привязаны к мосту podman).

Например, если у меня есть веб-сервер, работающий на порту 8080 на моем хосте ...

darkhttpd . --port 8080

, я могу запустить контейнер:

$ sudo podman run -it --rm alpine sh

И внутри этого контейнера, если я получу адрес шлюза по умолчанию:

/ # ip route
default via 10.88.0.1 dev eth0
10.88.0.0/16 dev eth0 scope link  src 10.88.0.42

Я могу подключиться к веб-серверу по этому адресу:

/ # wget -O- http://10.88.0.1:8080/hello.txt
Connecting to 10.88.0.1:8080 (10.88.0.1:8080)
Hello world
-                    100% |***************************************|    12  0:00:00 ETA

Единственное предупреждение - которое также верно для Docker - это то, что ваш межсетевой экран хоста должен быть настроен так, чтобы он не блокировал входящие соединения от ваших контейнеров.

...