docker - 为什么 Dockerfile 中不使用暴露端口?
问题描述
我是 Docker 新手。我刚学了1周。它确实是一个完美的部署工具。我也有一些坚持。我创建了 3 个容器,如下所示:
(1) 0.0.0.0:3000->3000/tcp
(2) 0.0.0.0:5000->3000/tcp
(3) 0.0.0.0:4000->5000/tcp
因此,容器的端口是我在“索引文件”中定义的端口(const port = 3000)。在这里我要问的是,为什么在Dockerfile中使用容器的端口而不是“EXPOSE”端口?
感谢您的任何解释。
解决方案
好吧,正如@emix 在评论中提到的阅读文档 中提到的那样
EXPOSE 指令通知 Docker 容器在运行时侦听指定的网络端口。可以指定端口监听 TCP 还是 UDP,如果不指定协议,则默认为 TCP。
它继续
EXPOSE 指令实际上并不发布端口。它充当构建映像的人和运行容器的人之间的一种文档类型,关于打算发布哪些端口。
推荐阅读
- html - 在之间创建连接器盒子
- java - 有没有办法使 JPQL @Query 注释动态化?
- c++ - Inserting objects into binary search tree - C++
- javascript - 除了开发人员仪表板之外,还有哪些托管 chrome 扩展的替代方法
- php - 无法打开受密码保护的 zip 存档
- python - Python - 模糊字符串匹配 - TypeError:预期的字符串或类似字节的对象
- javascript - 为什么我的获取帖子不起作用它没有响应?
- c - 写长到linux char设备驱动程序?
- html - 修复了英雄顶部元素不接收指针事件的问题
- sql - 按一对值对列进行排序