最佳答案
我正在尝试使用Dockerfile,我想我理解了大部分逻辑。然而,在这种情况下,我看不出“公开”和“发布”端口之间的区别。
我首先看到的所有教程都在Dockerfile中包含EXPOSE
命令:
...
EXPOSE 8080
...
然后他们从这个Dockerfile构建镜像:
$ docker build -t an_image - < Dockerfile
然后发布运行映像时与上述相同的端口:
$ docker run -d -p 8080 an_image
或使用发布所有端口
$ docker run -d -P an_image
在Dockerfile中暴露一个端口有什么意义,如果它无论如何都会发布的话?是否需要先暴露一个端口,然后没有再发布它?实际上,我想指定我在创建映像时将在Dockerfile中使用的所有端口,然后不再打扰它们,简单地运行它们:
$ docker run -d an_image
这可能吗?