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

Вид: 8925|Ответ: 0

Docker-контейнер для доступа к внешним хост-сервисам

[Скопировать ссылку]
Опубликовано 19.11.2019 10:10:01 | | | |
Сеть по умолчанию в docker-контейнере представляет собой мост (в той же локальной сети, что и хост, но с отдельным локальным IP), когда программа работает в производственной среде, достаточно настроить соответствующий сервисный адрес для подключения к базе данных, redis и т.д.

В среде разработки, если сервис работает в docker, а база данных работает локально, настройка 127.0.0.1 непроста.

Это можно решить двумя способами.

Решение 1:

Рассматривайте хост-машину и контейнер как две отдельные машины, а при настройке адреса настраивайте локальный или публичный IP хоста.

Решение 2:

Но напишите адрес хоста напрямую как: host.docker.internal, однако.Второй способ требует версии docker выше 18.03 и должен быть доступен на Windows и Mac

Чтобы проверить, могут ли эти два метода получить доступ к хосту, можно напрямую запустить образ с помощью docker, чтобы пинговать командную строку:

Установите инструмент пинга в контейнер, построенный с помощью Docker.
https://www.itsvse.com/thread-8966-1-1.html
(Источник: Architect_Programmer)


Как видно на изображении выше, доступ к контейнерамhost.docker.internalВы можете получить доступ к сервису хоста, проверив файл /etc/hosts, вы обнаружите, что перенаправление доменного имени нет, и вы не знаете конкретного принципа docker.

И хост, и контейнер могут получить доступ к сервисам хоста через host.docker.internal, но адрес, возвращаемый командой ping, отличается следующим образом:









Предыдущий:Примеры объясняют, что такое проникновение кэша Redis, лавина кэша и разрушение кэша
Следующий:Ошибка Autofac «Обнаружена зависимость от кругового компонента» устранена
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com