Как отправить HTTP-запросы в мой докер-контейнер с локального хоста - PullRequest
0 голосов
/ 02 июля 2019

У меня проблемы с отправкой HTTP-запросов в мой докер-контейнер (это API-интерфейс Node.js, который связывается с базой данных Redis), который работает внутри виртуальной машины (Docker Toolbox).

Я настроил свой Dockerfile и docker-compose.yml с нужными портами. Построил их и успешно выполнил ("вверх").

FROM node:8.15

WORKDIR /redis_server

COPY package.json package-lock.json ./

RUN npm install

COPY . ./

EXPOSE 8080

CMD ["npm", "start"]
version: '3'
services:
  web:
    build: .
    depends_on:
      - db

  db:
    image: redis
    ports:
      - "6379:6379"

redis.js

const PORT = 6379
const HOST = 'db'

server.js (express.js)

const PORT = '0.0.0.0:8080'

Я успешно создаю контейнер, затем использую службу HTTP-запросов для проверки GET. Поскольку я запускаю Docker Toolbox и виртуальная машина находится на хосте 192.168.99.100, я отправляю свои запросы на http://192.168.99.100:8080.

Это не работает, сообщение об ошибке, которое появляется в моем коде Visual Studio: «Соединение отклонено. Служба не работает на сервере, или неверные настройки прокси в vscode, или брандмауэр блокирует запросы. Подробно : Ошибка: подключить ECONNREFUSED 192.168.99.100:8080."

Не уверен, куда идти отсюда. Я не считаю себя знающим в сети вещей.

1 Ответ

1 голос
/ 02 июля 2019

Это потому, что вы не открыли порт на хосте. Вы можете попробовать:

version: '3'
services:
  web:
    build: .
    ports:
      - "8080:8080"
    depends_on:
      - db

  db:
    image: redis
    ports:
      - "6379:6379"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...