如果我在名为foo
的文件夹中有一个Dockerfile,并包含以下行:
EXPOSE 80
我有一个docker-compose来构建这样的容器:
services:
foo:
build: foo
...
ports:
- "5000:5000"
在主机上,我只能访问端口5000
,而80
拒绝连接。
那到底发生了什么? docker-compose是否会完全覆盖Dockerfile的EXPOSE
命令?端口80
是否只暴露给内部网络上的其他容器?
(我并不是真的在问,因为我有问题-我只是看到EXPOSE 80
仍然碰巧在我的Dockerfile中,我很好奇它是否会影响任何事情。)
答案 0 :(得分:1)
如果您使用的是docker-compose up
,则dockerfile端口将被覆盖。
当您使用docker run
时,将显示dockerfile中提到的端口。