在我的travis-ci中,我使用脚本逐个调用我的docker容器。我正计划将其替换为docker-compose
yml文件,以便更快速,更清洁地完成此任务。
但是,我无法弄清楚如何替换脚本的这一部分:
- CID=$(docker run --privileged --detach --volume="${PWD}":/root/django_deployment:rw -p 80 --name test_centos censofdockers/centos6-miniconda sleep 550)
- CID2=$(docker run --privileged --detach --volume="${PWD}":/root/django_deployment:rw -p 80 --name test_ubuntu censofdockers/ubuntu-miniconda sleep 550)
- DOCKER_IP=`docker inspect --format '{{ .NetworkSettings.IPAddress }}' ${CID}`
- DOCKER_IP2=`docker inspect --format '{{ .NetworkSettings.IPAddress }}' ${CID2}`
如果我使用docker-compose,如何以编程方式找出各个容器的ip是什么?
最佳答案
我使用以下作为~/.local/bin/docker-ip
来获取容器的IP地址。
#!/bin/bash
docker inspect -f \
'{{range $key, $value := .NetworkSettings.Networks}} {{ $value.IPAddress}} {{end}}' $1
要将其用于由compose创建的容器,请使用
<project name>_<service name>
作为容器名称。docker-ip <CID or container name>
关于docker - 使用docker-compose启动容器时,如何以编程方式获取其ip?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39719827/