Docker Compose 中的 expose 关键字用于指定容器暴露的端口,但是并不会将这些端口映射到主机的端口上。实际上,expose 只是用于给其他容器或服务访问该容器的服务,而不是给外部主机访问。在 Docker Compose 中,如果需要将容器的端口映射到主机上,则需要使用ports关键字。

举个例子,假设我们有一个 web 应用程序容器,该容器运行在端口 8080 上。我们可以使用 expose 关键字将该端口暴露给其他容器:

version: '3'
services:
  web:
    build: .
    expose:
      - "8080"

这样,其他容器就可以通过该容器的 IP 地址和端口 8080 访问该应用程序。但是,从外部主机访问该应用程序仍然需要使用端口映射。因此,如果我们想要将该容器的端口映射到主机上,我们需要使用 ports 关键字:

version: '3'
services:
  web:
    build: .
    ports:
      - "8080:8080"
    expose:
      - "8080"

这样,我们就可以从外部主机访问该应用程序了

docker-compose 的expose作用

原文地址: https://www.cveoy.top/t/topic/eCTO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录