gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 21:25:44 25 4
gpt4 key购买 nike

我正在尝试设置一个由 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 在这种情况下)的端口,例如声纳?

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

最佳答案

您不需要:EXPOSE一个服务的端口在另一个服务中直接可见(链接到第一个)。

不需要端口映射(就像您对 SonarQube 的 9000 和 3306 所做的那样)
从宿主机访问容器需要端口映射。
但是从容器到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"

关于docker-compose - 公开链接服务端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34334383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com