docker-compose获取docker的ID

时间:2015-06-16 14:53:52

标签: docker docker-compose

我正在使用docker-compose和docker-compose.yml文件。

有没有办法进入.yml,另一个docker的ID(在同一个docker-compose.yml中)?

搬运工-compose.yml:

containerA:
  command: python -u catch_sig.py 
  volumes: 
    - /workspace:/app
containerB:
  command: echo -e "POST /containers/containerA/kill?signal=SIGUSR1 HTTP/1.0\r\n" | nc -U /tmp/docker.sock

5 个答案:

答案 0 :(得分:3)

使用较新的docker-compose版本(我有1.8.0)你可以做

$ docker-compose ps -q

只会显示ID。 查看用法。

 $ docker-compose ps --help
 List containers.

 Usage: ps [options] [SERVICE...]

 Options:
   -q    Only display IDs

答案 1 :(得分:3)

您可以通过以下方式获取容器的ID:

ENV APP_JAR = "/app/service/lib/service-1.0.0.jar"

# CMD ["java", "-jar", "/app/service/lib/service-1.0.0.jar"]
CMD ["java", "-jar", $APP_JAR]

答案 2 :(得分:1)

要获取所有ID容器:

docker-compose ps -q

如果您需要获得一个ID:

docker-compose ps -q some_name_container_in_yml_file

答案 3 :(得分:0)

不确定.yml文件,但如果您链接容器,则可以/etc/hosts中的class ViewController: UIViewController { var backMusic: AVAudioPlayer! // ... @IBAction func buttonTouchUpInside(sender: AnyObject) { backMusic = setupAudioPlayerWithFile("sound", type: "wav") backMusic.play() } } 获取ID。也许这会有所帮助。

答案 4 :(得分:0)

您可以将Docker客户端添加到containerB,然后将DOCKER_HOST环境设置为基础主机(请务必配置其设置,以便它接受网络上的TCP连接)。然后,您可以使用容器名称docker inspect containerA来标识要查询的主机。

这应该为您提供containerA的容器ID。