当前位置:  开发笔记 > 后端 > 正文

docker-compose - 公开链接服务端口

如何解决《docker-compose-公开链接服务端口》经验,为你挑选了1个好方法。

我正在尝试设置一个由MySQL数据库容器支持的SonarQube容器.我的docker-compose.yml:

sonar:
  environment:
    - SONARQUBE_USER=sonar
    - SONARQUBE_PASSWORD=sonar
    - SONARQUBE_DATABASE=sonar
    - SONARQUBE_JDBC_URL=jdbc:mysql://db:3306/sonar?useUnicode=true&characterEncoding=utf8
  build: .
  ports:
    - "19000:9000"
    - "19306:3306"
  links:
    - db
db:
  environment:
    - MYSQL_ROOT_PASSWORD=root-secret
    - MYSQL_USER=sonar
    - MYSQL_PASSWORD=sonar
    - MYSQL_DATABASE=sonar
  image: mysql

在本ports节中,我试图从SonarQube(Web界面)和端口3306(MySQL连接)公开端口9000.

有没有办法db从"主"容器中公开链接服务(例如在这种情况下)的端口,例如sonar

编辑:为了更好地解释我的需求,我想将两个端口暴露给我localhost.我需要从我的机器访问这两个端口,因为我的SonarQube运行器需要访问数据库,我也想在数据库中运行一些查询,从我的机器,而不是在另一个容器内.



1> VonC..:

您不需要:EXPOSE来自一个服务的端口可以​​从另一个服务直接看到(链接到第一个服务).

无需端口映射(与SonarQube和3306中的9000一样)
端口映射是从主机访问容器所必需的.
但是,从容器到一个(链接)容器(由同一个码头工人守护进程都管理),任何端口宣布EXPOSEDockerfile是直接访问.

我想将这两个端口暴露给我的localhost.我需要从我的机器访问这两个端口,因为我的SonarQube运行器需要访问数据库

那么,...该db部分应该有自己的端口映射部分:

db:
  ports:
    - "xxx:yyyy"

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有