当前位置: 首页 > 知识库问答 >
问题:

docker-compose端口与expose端口之间的区别是什么

邵沛
2023-03-14

docker-compose.yml中的端口公开选项之间有什么区别

共有1个答案

田曜瑞
2023-03-14

根据docker-compose引用,

暴露端口。要么指定两个端口(主机:容器),要么只指定容器端口(将选择一个随机主机端口)。

  • docker-compose.yml中提到的端口将在docker-compose启动的不同服务之间共享。
  • 端口将向主机公开到随机端口或给定端口。

我的docker-compose.yml看起来是:

mysql:
  image: mysql:5.7
  ports:
    - "3306"

如果我执行docker-compose ps,它将看起来像:

  Name                     Command               State            Ports
-------------------------------------------------------------------------------------
  mysql_1       docker-entrypoint.sh mysqld      Up      0.0.0.0:32769->3306/tcp

公开端口而不将其发布到主机--它们仅可被链接的服务访问。只能指定内部端口。

端口不向主机公开,只向其他服务公开。

mysql:
  image: mysql:5.7
  expose:
    - "3306"

如果我执行docker-compose ps,它将看起来像:

  Name                  Command             State    Ports
---------------------------------------------------------------
 mysql_1      docker-entrypoint.sh mysqld   Up      3306/tcp

在Dockerfile的最新版本中,expose不再对操作产生任何影响,它只是提供信息。(另见)

 类似资料:
  • 这些端口465和587都用于发送邮件(提交邮件),但它们之间的真正区别是什么?

  • 本文向大家介绍串行端口和并行端口之间的区别,包括了串行端口和并行端口之间的区别的使用技巧和注意事项,需要的朋友参考一下 串口 串行端口提供连接串行线路以准备串行通信的接口。串行端口通常用于调制解调器,鼠标,安全摄像机等。串行端口使用DB-9连接器,该9针D型连接器连接到传输线。串行端口使用一条线提供串行通信,因此不依赖于另一条线的速度,并且其长度可以根据需要进行扩展。 并行端口 并行端口提供了连接

  • EXPOSE 声明端口 格式为 EXPOSE <端口1> [<端口2>...]。 EXPOSE 指令是声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务。在 Dockerfile 中写入这样的声明有两个好处,一个是帮助镜像使用者理解这个镜像服务的守护端口,以方便配置映射;另一个用处则是在运行时使用随机端口映射时,也就是 docker run -P 时,

  • 我通过9200端口使用ElasticSearchRESTAPI。 官方Java库客户端连接到9300端口。 端口API之间的区别是什么? 我想将日志事件传递到ElasticSearch并查看批量API: https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-docs-bulk.html https://