我有一个包含 2 个容器的 docker 组合文件要启动。我想等待数据库容器启动,然后再启动我的 Web 服务器容器。
我有一个脚本可以等到给定的主机:端口可访问。 我当前的 docker 文件如下所示:
version: '3'
services:
db:
image: <image repo url>
ports:
- "5500:5500"
web:
image: <image repo url>
ports:
- "7001:7001"
我的计划是修改 Web 图像,并在我继续提出它之前首先使用等待脚本。
但是,我遇到的问题是我如何从 Web 容器中知道数据库容器的 ip 以作为 ping 进行测试?
你能做的是:
CONTAINER_ID=`docker-compose ps -q web`
docker inspect -f '{{range .NetworkSettings.Networks} }{{.IPAddress}}{{end}}' $CONTAINER_ID
这样,可以先获取容器 ID,然后获取 IP。
我希望它有所帮助,