【发布时间】:2016-10-30 06:41:08
【问题描述】:
我有如下脚本,“docker run”已启动,它将打开 tty 以根据 docker 文件执行其命令,报告执行结束标志大约需要 5-6 小时,但同时我需要让它完成工作并在 shell 脚本行中前进并获取一些 pid 并使用它来设置条件。 不,我的问题是我无法执行“docker run”,然后从它移动到其他脚本行。 如何在不影响“docker run”命令的情况下做到这一点。
docker run --name=something -it --rm \
--link=postgresql:postgresql \
--publish=80:80 \
--env='something_PORT=80' \
--env='NGINX_MAX_UPLOAD_SIZE=60m' \
--volume=/srv/docker/something:/home/something/data \
--volume=/srv/docker/something/rgloader:/home/something/rgloader \
something:3.3 \
app:backup:restore
#30 sec pass till process starts to unpack tar file.
sleep 30
#Get PID of tar extraction process
PID=`ps au | grep "tar -xf" | head -n 1 | awk '{print $2}'`
echo $PID
echo "tar file extraction is completed"
#wait until tar extraction process ends
while [ -e /proc/$PID ]
do
echo $PID PID still running
sleep 10
done
【问题讨论】:
-
问题不太清楚。你想在后台
docker run? -
我知道如果我使用“-d”我可以在守护进程模式下运行 docker,但我只想运行 docker 并让它完成它的工作并转到下一行,bash 将在该行停止并我希望它向前发展。