Как исправить ошибку «curl (56) Recv: сбой соединения по одноранговой сети» при сопоставлении портов от контейнера докера к хост-машине? - PullRequest
0 голосов
/ 04 января 2019

У меня Angular Project, запущенный в док-контейнере на порту 4200. Я сделал сопоставление портов от порта 4200 док-контейнера на мой локальный хост 4200.

Я запускаю это на Ubuntu 16.04. При выполнении netstat -nltp я получаю вывод

tcp6 0 0 :::4200 :::* LISTEN

Мой Dockerfile выглядит так:

FROM node
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app
RUN npm cache clean --force
RUN npm install
COPY . /usr/src/app
EXPOSE 4200
CMD ["npm","start"]

Я ожидал, что при запуске curl ::: 4200 я покажу исходный код веб-страницы вместо ошибки, curl (56) Recv failure: Connection reset by peer

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Изменение следующего в package.json для моего углового проекта сделало свое дело.

ДО

{
  "name": "client",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  }

ПОСЛЕ

{
  "name": "client",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve --host 0.0.0.0",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },

Для получения дополнительной информации следуйте этой ссылке

0 голосов
/ 04 января 2019

Выполнение сопоставления портов при первом запуске контейнера как

docker run -ti --name angular angular_image:latest -p 4200:4200

Это переопределит команду EXPOSE в файле Docker.В реальном докере было бы назначено случайное сопоставление портов от контейнера к хост-машине.Таким образом, необходимо иметь порт, отображающий докер cli.

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