码头集装箱港口混乱

时间:2019-11-22 07:07:51

标签: docker dockerfile containers

我对Docker端口有些困惑。由于我不知道服务器的IP,所以无法检查自己。

在Dockerfile中,我可以看到以下内容

EXPOSE 8080:8080

但是要运行容器,请使用以下命令使用同一图片

docker run -d --restart=unless-stopped --name image1 -p 3000:8080 image1:latest

我的困惑是在Dockerfile中创建映像主机端口为8080,但是从相同的映像主机端口运行容器时给定的端口为3000.那么该容器将在哪个主机端口中运行,为什么?

1 个答案:

答案 0 :(得分:3)

EXPOSE指令实际上并未发布端口。它充当构建映像的人员与运行容器的人员之间的一种文档,用于说明要发布的端口。要在运行容器时实际发布端口,请使用docker run上的-p标志发布并映射一个或多个端口,或使用-P标志发布所有公开的端口并将其映射到高阶端口。

https://docs.docker.com/engine/reference/builder/

因此3000端口将暴露在您的容器中。