Приложение Google Compute Engine ничего не слушает на портах 80 и 443

Мой пост очень похож на этот . У меня есть контейнер Docker, в котором запущено очень простое приложение node.js / express, которое прослушивает порт 3000, работающее на Google Compute Engine с включенными правилами брандмауэра http и https.

Однако по какой-то причине процессы не прослушивают общедоступные порты ( 443 и 80). Когда я набираю sudo netstat -tnlp tcp Я получаю:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address     Foreign Address   State       PID/Program name    
tcp        0      0 0.0.0.0:5355      0.0.0.0:*         LISTEN      288/systemd-resolve 
tcp        0      0 0.0.0.0:22        0.0.0.0:*         LISTEN      296/sshd            
tcp6       0      0 :::5355           :::*              LISTEN      288/systemd-resolve 
tcp6       0      0 :::3000           :::*              LISTEN      1216/node    

Также, когда я запускаю nmap , я получаю:

Not shown: 993 filtered ports
PORT     STATE  SERVICE
21/tcp   open   ftp
22/tcp   open   ssh
80/tcp   closed http
443/tcp  closed https
554/tcp  open   rtsp
3389/tcp closed ms-wbt-server
7070/tcp open   realserver

Я знаю, что на портах 443 или 80 ничего не прослушивается, и я вижу свой приложение прослушивает порт 3000, но я не уверен, как это изменить / сопоставить / раскрыть. Я попытался изменить свой docker-compose на:

...

ports:
  - "80:3000"
  - "443:3000"
  - "3000:3000"
...

Но, похоже, это не сработало. Я знаю, что не использую docker-compose в виртуальной машине, так что это не имеет значения. Я прочитал здесь Я не должен открывать публичные порты в Dockerfile, чтобы я мог запускать несколько контейнеров на одном экземпляре виртуальной машины, что имеет смысл. Но все еще не знаю, как сопоставить 443 и 80 моему контейнеру. Есть идеи?

ОБНОВЛЕНИЕ:

Согласно документации :

Вы можете развернуть только один контейнер для каждого экземпляра виртуальной машины. Рассмотрите Kubernetes Engine, если вам нужно развернуть несколько контейнеров на экземпляр виртуальной машины. Свяжитесь с командой, если ваш вариант использования требует развертывания нескольких контейнеров на экземпляре Compute Engine.

Похоже, мне в любом случае разрешено запускать только один контейнер на каждую виртуальную машину, поэтому, возможно, я попробую перенаправить порты в моем Dockerfile .. .

0
задан 28 January 2019 в 02:00
1 ответ

Я наконец понял это.

0
ответ дан 5 December 2019 в 04:19

Теги

Похожие вопросы