docker-compose - 公开链接服务端口
docker-compose - Expose linked service port
我正在尝试设置一个由 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 界面)的端口 9000 和端口 3306(MySQL 连接)。
是否有任何方法可以从 "main" 容器中的链接服务(例如本例中的 db
)公开端口,例如sonar
?
编辑:为了更好地解释我的需求,我想将两个端口都公开给我的 localhost
。我需要从我的机器访问两个端口,因为我的 SonarQube 运行ner 需要访问数据库,我也想 运行 数据库中的一些查询, 从我的机器,而不是在另一个容器内.
您不需要:来自一项服务的 EXPOSE
端口对于另一项服务(链接到第一项)是直接可见的。
不需要端口映射(就像您从 SonarQube 为 9000 和 3306 所做的那样)
从主机访问容器需要端口映射。
但是从容器到a (linked) container (both managed by the same docker daemon), any port declared in 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"
我正在尝试设置一个由 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 界面)的端口 9000 和端口 3306(MySQL 连接)。
是否有任何方法可以从 "main" 容器中的链接服务(例如本例中的 db
)公开端口,例如sonar
?
编辑:为了更好地解释我的需求,我想将两个端口都公开给我的 localhost
。我需要从我的机器访问两个端口,因为我的 SonarQube 运行ner 需要访问数据库,我也想 运行 数据库中的一些查询, 从我的机器,而不是在另一个容器内.
您不需要:来自一项服务的 EXPOSE
端口对于另一项服务(链接到第一项)是直接可见的。
不需要端口映射(就像您从 SonarQube 为 9000 和 3306 所做的那样)
从主机访问容器需要端口映射。
但是从容器到a (linked) container (both managed by the same docker daemon), any port declared in 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"