AWS Docker 部署不使用 Dockerrun 文件向外界公开端口
Posted
技术标签:
【中文标题】AWS Docker 部署不使用 Dockerrun 文件向外界公开端口【英文标题】:AWS Docker deployment not exposing port to outside world with Dockerrun file 【发布时间】:2019-06-12 23:10:54 【问题描述】:我正在使用 docker 映像将 spring-boot 应用程序部署到 AWS,我需要能够使用 hawtio 控制台远程连接到应用程序以监控行为。我创建了一个 Dockerfile 和一个 Dockerrun.aws.json 文件,例如,dockerfile 有 EXPOSE 8080,而 Dockerrun 是:
"AWSEBDockerrunVersion": "1",
"Ports": [
"ContainerPort": 8080,
"HostPort": 5000
]
AWS EB 实例打开了 5000 端口(我测试过),但 Hawtio 控制台没有连接到应用程序。有人可以为我指出如何正确公开端口的正确方向吗?
【问题讨论】:
【参考方案1】:如果您使用的是 EB,那么您如何指定要使用的 docker 映像?
此信息需要在Dockerrun.aws.json
文件中指定,您提供的示例中没有此信息。
"AWSEBDockerrunVersion": "1",
"Image":
"Name": "path to the image's repository",
"Update": "true"
,
"Ports": [
"ContainerPort": 8080,
"HostPort": 5000
]
【讨论】:
是的,很抱歉错过了帖子中的那一行。无论如何我设法解决了这个问题,AWS EB 在端口 5000 上启动了应用程序,所以我只需要在 dockerrun.aws.json 上将 containerPort 设置为 5000 并在 Dockerfile 中将 EXPOSE 5000 设置为以上是关于AWS Docker 部署不使用 Dockerrun 文件向外界公开端口的主要内容,如果未能解决你的问题,请参考以下文章
AWS Docker 部署不使用 Dockerrun 文件向外界公开端口