在docker-compose文件中指定端口是否会覆盖Dockerfile中公开的端口?

时间:2018-10-02 20:21:16

标签: docker docker-compose

如果我在名为foo的文件夹中有一个Dockerfile,并包含以下行:

EXPOSE 80

我有一个docker-compose来构建这样的容器:

services:
  foo:
    build: foo
    ...
    ports:
     - "5000:5000"

在主机上,我只能访问端口5000,而80拒绝连接。

那到底发生了什么? docker-compose是否会完全覆盖Dockerfile的EXPOSE命令?端口80是否只暴露给内部网络上的其他容器?

(我并不是真的在问,因为我有问题-我只是看到EXPOSE 80仍然碰巧在我的Dockerfile中,我很好奇它是否会影响任何事情。)

1 个答案:

答案 0 :(得分:1)

如果您使用的是docker-compose up,则dockerfile端口将被覆盖。 当您使用docker run时,将显示dockerfile中提到的端口。