如何访问docker-compose.yml中的其他容器id?
我有一个docker-compose.yml文件,如下所示如何访问docker-compose.yml中的其他容器id?,docker,docker-compose,docker-networking,Docker,Docker Compose,Docker Networking,我有一个docker-compose.yml文件,如下所示 version: '3' services: database: image: mcr.microsoft.com/mssql/server:2017-latest environment: - SA_PASSWORD=king@1234 - ACCEPT_EULA=Y ports: - "8110:1433" container_name: app_db_co
version: '3'
services:
database:
image: mcr.microsoft.com/mssql/server:2017-latest
environment:
- SA_PASSWORD=king@1234
- ACCEPT_EULA=Y
ports:
- "8110:1433"
container_name: app_db_con
api:
build:
context: /home/shubham/Employee/EmployeeBackEnd/
image: app-api:dev
ports:
- "8111:5001"
container_name: app_api_con
depends_on:
- database
web:
build:
context: /home/shubham/Employee/EmployeeFrontEnd/
image: app-ui:dev
ports:
- "8112:80"
container_name: app_web_con
depends_on:
- database
- api
我想作为参数访问api容器中的数据库容器id。例如,下面代码中的参数:
api:
build:
context: /home/shubham/Employee/EmployeeBackEnd/
image: app-api:dev
args:
- Database_Server: database_container_id
ports:
- "8111:5001"
container_name: app_api_con
depends_on:
- database
我不知道如何做到这一点。如果还有其他方法,请提供帮助
谢谢默认情况下,使用docker compose,每个容器都可以通过compose文件中定义的服务名称进行访问 例如,在您的例子中,如果您想从
api
访问数据库
容器,只需使用其名称即可。您可以使用以下命令进行尝试:
$docker container exec-ti[您的api容器]ping数据库
有关compose中联网的更多信息,请查看。原因是什么?是否能够从api服务器访问它?Docker compose将您的服务添加到网络并解析Docker compose服务定义中指定的名称,因此,如果您在
api
容器中,您可以将数据库称为database
,并将其解析为database container。args仅在构建期间使用,您可以随时使用服务名称连接到db,也可以将数据库链接到您的容器,只要您想使用任何名称=>links:[数据库:数据库\服务器]谢谢,将服务名称作为db服务器名称放置即可。