образ докера (приложение nodejs) в GCP возвращает ERR_CONNECTION_REFUSHED (работает локально)

Я создал образ докера из приложения nodejs. Я хочу запустить экземпляр виртуальной машины с образом докера в экземпляре GCP Compute Egine.

Когда я тестирую изображение локально и перехожу в браузере на http://localhost:8000, все работает. Поэтому я не думаю, что с моим изображением докера что-то не так.

docker run -p 8000:8000 -d <username>/<docker-file>

Я отправил образ докера в репозиторий контейнеров Google с помощью следующих команд:

docker tag <username>/<docker-file> gcr.io/<project-id>/<docker-file>
docker push gcr.io/<project-id>/<docker-file>

Теперь, когда я добавляю URL-адрес (gcr.io/project-id/docker-file) в экземпляр виртуальной машины и жду, пока экземпляр запустится, я получаю сообщение об ошибке при переходе к http://[instance_external_ip]:8000, я получаю сообщение об ошибке ERR_CONNECTION_REFUSED.

Я установил правило брандмауэра, чтобы разрешить входящий трафик через порт tcp = 8000 и диапазон IP-адресов 0.0.0.0/0.

Я что-то упускаю?

Изменить:

Мой докерфайл

FROM node:10

WORKDIR /usr/src/nodejs

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 8080

CMD [ "node", "index.js" ]

person yesterday    schedule 21.01.2020    source источник
comment
Можете ли вы опубликовать свой Dockerfile?   -  person prithajnath    schedule 21.01.2020
comment
@prithajnath: я отредактировал свой вопрос   -  person yesterday    schedule 21.01.2020


Ответы (2)


Как/когда вы начинаете запускать докер? Не могли бы вы запустить эту команду

docker run -p 8000:8000 -d gcr.io/<project-id>/<docker-file>:latest

А затем попробуйте сначала подтвердить, что он работает локально, используя

curl localhost:8000
person Toni    schedule 22.01.2020

В вашем Dockerfile вы выставляете 8080, а не 8000.

Вы проверили, что ваш контейнер работает на экземпляре? его тоже пробовали curl/telnet?

person jennyboxer    schedule 21.01.2020
comment
Я изменил порт, в моем реальном файле докера написано 8000. И нет, как я могу проверить, работает ли контейнер на экземпляре? Просто SSH => откройте его => docker container cmd? - person yesterday; 21.01.2020
comment
ssh экземпляр, запустить - docker ps -a . вы должны увидеть состояние контейнера - person jennyboxer; 21.01.2020
comment
Я вижу 2 идентификатора контейнера, но не контейнер, который я установил. Ммм... Думаю, я собираюсь воссоздать экземпляр. - person yesterday; 21.01.2020