加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 03:53:15 所属栏目:安全 来源:网络整理
导读:我正在尝试设置一个由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=tr

我正在尝试设置一个由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

在端口部分,我试图从SonarQube(Web界面)和端口3306(MySQL连接)公开端口9000.

有没有办法从“主”容器中显示来自链接服务(例如本例中的db)的端口,例如声纳?

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

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

无需端口映射(如SonarQube和3306中的9000)
从主机访问容器需要端口映射.
但是从容器到a (linked) container(都由同一个docker守护程序管理),可以直接访问EXPOSE in its Dockerfile中声明的任何端口.

I want to expose both ports to my localhost. I need access to both ports from my machine,as I SonarQube runner needs access to the database

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

db:
  ports:
    - "xxx:yyyy"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读