使用Azure Docker容器映射端口

时间:2019-04-06 16:12:18

标签: node.js azure docker express containers

Azure中是否可以将端口映射到Docker容器?我有一个使用Node + Express构建的映像,该映像需要一个环境变量来确定要侦听的端口。在Azure中,使用大于1024的任何端口似乎都可以正常工作,但是低于该端口,该过程将引发uncaughtException错误。显然,我想使用端口80(和443)进行生产。我想将端口80映射到容器中已配置的端口(例如docker run -p 80:3000。如何在Azure中完成此操作。

映射到端口80时引发的错误是:

server port is 80
{ Error: listen EACCES: permission denied 0.0.0.0:80
    at Server.setupListenHandle [as _listen2] (net.js:1241:19)
    at listenInCluster (net.js:1306:12)
    at Server.listen (net.js:1394:7)
    at Function.listen (/home/node/app/node_modules/express/lib/application.js:618:24)
    at Object.<anonymous> (/home/node/app/dist/app.js:34:5)
    at Module._compile (internal/modules/cjs/loader.js:805:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:816:10)
    at Module.load (internal/modules/cjs/loader.js:672:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:612:12)
    at Function.Module._load (internal/modules/cjs/loader.js:604:3)
  code: 'EACCES',
  errno: 'EACCES',
  syscall: 'listen',
  address: '0.0.0.0',
  port: 80 }

预先感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

确信尚不支持此功能,您可以为此功能here投票。

另外,查看文档,似乎端口80应该工作正常(请参见this示例)。