Невозможно пропинговать порт 80 вне контейнера докера - PullRequest
0 голосов
/ 01 декабря 2018

Я создаю приложение реагирования в Docker-контейнере.Точнее, он содержит гораздо больше, но я застрял на реакции / nginx: 80, выставленной вне контейнера.У меня, кажется, нет этой проблемы, когда я использую другой порт, например, 3000 или 8080.

git cone https://chrisconnors@bitbucket.org/chrisconnors/mndspn.git

Затем я просто строю frontend с docker-compose up --build -d frontend

После его запуска я могу нажать 0.0.0.0:80 в самом контейнере.

/ # wget 0.0.0.0:80
Connecting to 0.0.0.0:80 (0.0.0.0:80)
index.html           100% |******************************************|   548   0:00:00 ETA

Однако, когда я нажимаю это в браузере или скручиваю из моего терминала (вне контейнера), я получаю эту ошибку:

:~/src/mndspn$ curl --trace-ascii dump.txt 0.0.0.0:80
curl: (56) Recv failure: Connection reset by peer
:~/src/mndspn$ cat dump.txt 
== Info: Rebuilt URL to: 0.0.0.0:80/
== Info:   Trying 0.0.0.0...
== Info: TCP_NODELAY set
== Info: Connected to 0.0.0.0 (127.0.0.1) port 80 (#0)
=> Send header, 71 bytes (0x47)
0000: GET / HTTP/1.1
0010: Host: 0.0.0.0
001f: User-Agent: curl/7.58.0
0038: Accept: */*
0045: 
== Info: Recv failure: Connection reset by peer
== Info: stopped the pause stream!
== Info: Closing connection 0

Ответы [ 2 ]

0 голосов
/ 01 декабря 2018

Только что проверил файл составления докера, который вы, возможно, используете, порт 80 не отображается в службе frontend.

https://bitbucket.org/chrisconnors/mndspn/src/4724d5c4a3d67fad9e2e7d84f2ec3916e75360f7/docker-compose.yml?at=master&fileviewer=file-view-default#docker-compose.yml-39

Раскомментируйте строку портов {Строка 39-40}

ports:
  - "80:80" 

Запустите контейнер снова, используя docker-compose, и вы сможете получить доступ к приложению.

0 голосов
/ 01 декабря 2018

Сброс подключения к контейнеру Docker обычно означает, что вы определили сопоставление портов для контейнера, который не указывает на приложение.

Итак, если вы определили сопоставление 80:80,убедитесь, что ваш процесс внутри экземпляра Docker действительно работает на порте 80 (netstat -an | grep LISTEN).

Убедитесь, что в команде docker run

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