общаться с сервисом внутри докера с хоста, не используя его IP - PullRequest
0 голосов
/ 31 января 2019

У меня запущен процесс на хосте, который должен взаимодействовать с докером, и я хочу, чтобы он выполнялся с помощью какого-либо параметра, который не может измениться (например, имя докера или имя хоста) в отличие от IP (предпочитаю не делать IPстатического докера или для этого установите внешние докеры).

Мне известно, что докеры могут разрешать адресатов по имени в частной сети, и это то, что я хочу, но не между докерами, а между процессами, выполняющимися на хосте иdocker.

не удалось найти решение, можно ли это сделать?

Редактировать:

Мне не разрешено использовать хост-сеть и открывать дополнительные порты на хостепо соображениям безопасности.

1 Ответ

0 голосов
/ 31 января 2019

Вы можете выбрать способ, который лучше соответствует вашим потребностям.

Вариант 1. Использовать сетевое подключение хоста.В этом случае Docker не создает отдельную сеть для контейнера, и вы подключаетесь к сервисам контейнера, как если бы они работали на вашем хосте:

docker run --network=host <image_name>

Недостаток этого подхода - низкая изоляция и, следовательно, безопасность.Вам не нужно выставлять какие-либо порты здесь - если служба прослушивает 8080, просто откройте localhost:8080 и наслаждайтесь.

Второй подход более правильный - вы выставляете (как-то вперед) внутренние порты в контейнере и отображаете ихна порты хоста.

docker run -p 8080:80 <image_name>

Это отобразит порт 80 из контейнера в порт 8080 на хосте.Как и в предыдущем примере, вы все еще подключаетесь, используя localhost, например localhost:8080.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...