2016-11-17 3 views
1

DockerfileDocker: Почему переадресация портов не работает с экскурсией?

FROM golang:latest 
EXPOSE 3999 
ENTRYPOINT ["go", "tool", "tour"] 

Он начинается Go Tour в http://localhost:3999

Я бегу это с грузчиком run -d -p 127.0.0.1:3999:3999 "hubusername/docker-tour:v1"

Но $ curl http://localhost:3999 возвращает ошибку:
локон: (56) непредставление Recv : Сброс соединения с помощью одноранговой сети

Конечно, ip: 3999 в браузере тоже не работает.

p.s. docker run -d -p 8081:80 nginx:alpine работает отлично

+2

Возможно, это связано с тем, что гастрольный тур связан только с локальным IP-адресом контейнера (127.0.0.1), а не с его внешним IP-адресом, что является «-p» форвардом. – afontaine

+0

@afontaine Могу ли я переслать -p до 127.0.0.1? –

+2

Вероятно, есть опция, позволяющая 'go tour' связываться с другим IP-адресом. Если вы передадите этот параметр в 0.0.0.0, он обычно привязывается ко всем IP-адресам. Есть ли опция '-h' или' --host'? – afontaine

ответ

2

Хорошо, я просто выставиться на 0.0.0.0 хозяина пойти приложение тур, добавив следующую строку:

CMD ["-http", "0.0.0.0:3999", "-openbrowser=false"]

0

я получил эту работу, используя контейнер golang по умолчанию с:

docker run --rm -p 3999:3999 golang go tool tour -http 0.0.0.0:3999 -openbrowser=false 
Смежные вопросы