Docker контейнер переназначает localhost с 127.0.0.1 на IP-адрес моего компьютера - PullRequest
1 голос
/ 15 апреля 2020

Я запускаю контейнер Docker в фоновом режиме на порту 8000. Я также запускаю приложение Django на порту 8000. Как ни странно, оба работают - я могу получить доступ к Docker приложение в localhost:8000 и приложение Django в 127.0.0.1:8000.

Я немного покопался, и я считаю, что Docker каким-то образом переназначил localhost, чтобы указать на IP-адрес моего компьютера, а не на адрес обратной связи 127.0.0.1. Это подтверждается тем, что другие устройства в моей сети могут получить доступ к приложению Docker на моем компьютере через ip_address:8000, а когда я уничтожаю контейнер, localhost:8000 возвращается к обслуживанию моего приложения Django.

У меня вопрос, как docker сделал это и почему?

Дополнительная информация:

  • Запуск docker ps показывает отображение порта 0.0.0.0:8000->8000/tcp как и ожидалось, что, как я полагаю, означает, что порт 8000 моего компьютера сопоставлен с 8000 контейнера.
  • В моем файле /etc/hosts или /private/etc/hosts нет ничего, объясняющего это поведение.
  • Хотя у меня включен wifi, и localhost:8000 и ip_address:8000 обслуживают контейнер, но когда я отключаю мой inte rnet, ip_address:8000 перестает обслуживать контейнер. Если бы Docker переназначил localhost -> IP-адрес устройства, не перестал ли бы localhost:8000 также работать?

Любое объяснение приветствуется.

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