Docker:获取/打印正在运行的容器的ID

目标是从容器内的主机运行脚本setup-debian-server.sh ,并在没有错误的情况下提交图像。

这个东西将脚本行作为参数提供给bash ,并附加到hostname以打印容器的ID。

它将parameter passing给脚本: --script-par1=abc script --script-par1=abc

 ( did="$( docker run ubuntu:15.04 /bin/bash -c "$(<./setup-debian-server.sh); echo; hostname;" -- --script-par1=abc | tail -n1; exit ${PIPESTATUS[0]} )" && docker commit "$did" my/base ) 

问题是, setup-debian-server.sh标准输出丢失。 而且总体上是丑陋的。

我玩过一些exec {FD}>&1命令,但不能可靠地刷新stdout(我总是希望输出3行,但有时候是2):

 (exec {FD}>&1 && /bin/bash -c "hostname; echo 123;" | tee /dev/fd/$FD | head -n1) 

如何做这个简单的任务?