首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >码头工人-不监听指定端口

码头工人-不监听指定端口
EN

Stack Overflow用户
提问于 2019-05-04 19:55:14
回答 2查看 1.6K关注 0票数 0

当我运行docker-compose up时,它告诉我它侦听本地主机端口5000,尽管在我的docker-compose.override.yml文件中配置端口80,在Dockerfile中公开端口80。

我也尝试过在docker-compose.yml中设置端口,但它仍然默认为端口5000

docker-compose.yml

代码语言:javascript
复制
version: '3'

services:
  myapp:
    image: me/myapp
    environment:
      - ASPNETCORE_ENVIRONMENT=Production
    build:
      context: .
      dockerfile: MyApp.API/Dockerfile

docker-compose.override.yml

代码语言:javascript
复制
version: '3'

services:
  myapp:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
    ports:
      - "80:80"

Dockerfile:

代码语言:javascript
复制
...

EXPOSE 80

...

我遗漏了什么来迫使docker-compose up在yml中指定的端口上侦听?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-04 20:14:05

启动ASP.NET应用程序的配置是非常重要的。你可以把它放到这样的环境中:

Dockerfile

代码语言:javascript
复制
ENV ASPNETCORE_URLS=http://*:80

或者也在docker-compose.yml中定义它

代码语言:javascript
复制
version: '3'

services:
  myapp:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=http://*:80
    ports:
      - "80:80"
票数 0
EN

Stack Overflow用户

发布于 2019-05-04 21:51:29

Dockerfile中的公开指令实际上并不发布端口。它作为构建映像的人和运行容器的人之间的一种文档类型,而这些港口将被发布。要在运行容器时实际发布端口,请在运行的码头上使用-p标志发布和映射一个或多个端口,或者使用-P标志发布所有公开的端口,并将它们映射到高级端口。

在您的例子中,所有的控制都是通过坞编写完成的,我不担心看到端口5000,因为它仍然无法访问。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55986302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档