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

docker-compose中的端口和公开有什么区别?

欧奇希
2023-03-14

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

共有3个答案

丌官丰羽
2023-03-14

端口此部分用于定义主机服务器和Docker容器之间的映射。

ports:
   - 10005:80

这意味着在容器内运行的应用程序暴露在端口80。但外部系统/实体无法访问它,因此需要映射到主机服务器端口。

注意:您必须打开主机端口10005并修改防火墙规则以允许外部实体访问应用程序。

他们可以使用

http://{主机IP}:10005

像这样

EXPOSE这专门用于定义docker容器中运行应用程序的端口。

您也可以在dockerfile中定义它。一般来说,在dockerfile内部定义EXPOSE是一个很好且广泛使用的实践,因为很少有人在默认80端口之外的其他端口上运行它们

王亮
2023-03-14

端口:

  1. 激活容器以从docker外部的世界(可以是同一主机或不同的机器)侦听指定的端口,并且也可以访问docker内部的世界。
  2. 可以指定多个端口(这就是为什么端口不是端口)

暴露:

    < li >激活容器,仅从docker内部监听特定端口,而不从docker外部监听不可访问的端口。 < li >可以指定多个端口
谢弘阔
2023-03-14

根据docker-compose参考,

公开端口。指定两个端口(主机:CONTAINER),或仅指定容器端口(将选择随机主机端口)。

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

我的<code>docker编写。yml</code>看起来像:

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不再具有任何操作影响,它只是提供信息。(另请参阅)

 类似资料:
  • 问题内容: 并且似乎正在与同一个dockerFile进行交互,这两个工具之间有什么区别? 问题答案: 在一个码头工人的发动机管理单个容器时,CLI使用。这是访问docker daemon api的客户端命令行。 该CLI可以用于管理多容器应用程序。它还会将您在cli 上输入的许多选项移到文件中,以方便重用。它在与所使用的同一docker api上充当前端“脚本” ,因此您可以使用命令和许多shel

  • 问题内容: 每当我执行 我看到状态为“ UP”的容器。如果我做 我将看到更多详细信息,但状态相同。这两个命令之间有什么区别吗? 问题答案: docker-compose start (https://docs.docker.com/compose/reference/start/) 启动服务的现有容器。 docker-compose up (https://docs.docker.com/comp

  • 问题内容: 我正在试验Dockerfile,我想我了解大多数逻辑。但是,在这种情况下,我看不到“公开”和“发布”端口之间的区别。 我首先看过的所有教程都将命令包含在Dockerfile中: 然后,他们从此Dockerfile构建映像: 然后在运行映像时 发布 与上述相同的端口: 或使用以下命令发布所有端口 如果仍要发布端口,则在Dockerfile中公开端口有什么意义?是否需要先公开一个端口,然后

  • 问题内容: 在深入研究Docker,Google Cloud和Kubernetes的同时,还没有清楚地了解这三个产品,在我看来,这些产品是重叠的,但它们并不兼容。 例如,需要重写文件,以便可以将应用程序部署到Kubernetes。 有人可以对Docker,Docker Compose,Docker Cloud和Kubernetes重叠之处以及其中一个相互依赖的地方进行概括的粗略描述吗? 问题答案:

  • 在深入研究Docker、Google Cloud和Kubernetes的同时,我还没有清楚地了解这三个产品,在我看来,这些产品是重叠的,但它们并不兼容。 例如,需要重新编写文件,以便将应用程序部署到Kubernetes。 有人能提供一个高层次的粗略描述Docker、Docker Compose、Docker Cloud和Kubernetes在哪些地方重叠,哪些地方依赖于另一个吗?

  • 问题内容: 和之间有什么区别? 假设在dockerized项目路径中有一个文件: 和 问题答案: 可以被认为是DockerCLI的包装器(实际上,它是python中的另一种实现,如[注释中所述),以节省时间并避免500个字符长的行(并同时启动多个容器)。它使用一个名为的文件来检索参数。 您可以在此处找到docker- compose文件格式的参考。 因此,基本上,您将阅读,查找包含该语句的所有服务