Контейнер сервера флеш-памяти Docker недоступен через хост - PullRequest
0 голосов
/ 29 августа 2018

К сожалению, в Интернете полно схожих вопросов, хотя все они немного отличаются, а некоторые связаны с виртуальными машинами. Вот мои настройки:

Mac OSX 10.13.2
Докер 18.06.0-ке

У меня есть очень простой сервер для хранения колб, к которому при запуске я могу получить доступ через: http://127.0.0.1:8015/Outlier/username/100/ И я получаю числовой результат.

Я настроил образ Docker с помощью серверного приложения выше и требований флакона, колбы-отдыха и запросов. Когда я запускаю контейнер с этим изображением, я могу получить доступ к результатам через:

docker exec <container id> curl http://127.0.0.1:8015/Outlier/username/100/

Проблема в том, что когда я получаю доступ к http://127.0.0.1:8015/Outlier/username/100/ через хром, на хосте я получаю сообщение:

Эта страница не работает 127.0.0.1 не отправил никаких данных. ERR_EMPTY_RESPONSE

Я понимаю, что контейнер работает на своем собственном порту ip: и на хосте я должен правильно добраться до этого места.

docker ps <container id>

Для ПОРТ-шоу

0.0.0.0: 8015-> 8015 / TCP

Я убедился, что Dockerfile выполняет EXPOSE 8015: 8015 (поэтому порты хоста и контейнера совпадают)

docker inspect <container id> 

Возвращает кучу деталей, включая один HostIp, который пуст. В соответствии с этим полезным постом docker я должен посмотреть на настройку «Gateway», которая в моем случае - 172.17.0.1. Во всяком случае, я попробовал следующее на моей хост-машине через Chrome (и curl) без какого-либо успеха. Какие другие настройки я должен установить? Это не должно быть так много времени ...

http://localhost:8015/Outlier/username/100/
http://0.0.0.0:8015/Outlier/username/100/
http://127.0.0.1:8015/Outlier/username/100/
http://<192.168.1.75 ip моего хоста через ifconfig>: 8015 / Outlier / username / 100 /
http://172.17.0.1:8015/Outlier/username/100/
http://<172.17.0.2 который является IP-адресом в соответствии с проверкой Docker>: 8015 / Outlier / username / 100 /

Есть указатели?

1 Ответ

0 голосов
/ 04 сентября 2018

Если вы посмотрите на эту публикацию , вы увидите, что Docker не работает должным образом на OSX, т. Е. Если вы запустите серверное приложение в контейнере, вы не сможете получить доступ к нему. это на вашей машине без какой-либо настройки. Так как у меня не хватало места на моем Mac, и у меня дома был сервер Linux, я решил эту проблему с помощью Docker в Linux (mint). Решение не требует абсолютно никаких настроек. Docker в Linux работает так, как вы (я) ожидаете.

Наконец, вот ссылка на очень полезный набор параметров после установки , которые следует учитывать при запуске Docker на Mac .

...