我对Docker端口有些困惑。由于我不知道服务器的IP,所以无法检查自己。
在Dockerfile中,我可以看到以下内容
EXPOSE 8080:8080
但是要运行容器,请使用以下命令使用同一图片
docker run -d --restart=unless-stopped --name image1 -p 3000:8080 image1:latest
我的困惑是在Dockerfile中创建映像主机端口为8080,但是从相同的映像主机端口运行容器时给定的端口为3000.那么该容器将在哪个主机端口中运行,为什么?
答案 0 :(得分:3)
EXPOSE指令实际上并未发布端口。它充当构建映像的人员与运行容器的人员之间的一种文档,用于说明要发布的端口。要在运行容器时实际发布端口,请使用docker run上的-p标志发布并映射一个或多个端口,或使用-P标志发布所有公开的端口并将其映射到高阶端口。
https://docs.docker.com/engine/reference/builder/
因此3000端口将暴露在您的容器中。