在BASH变量中存储`docker run`命令输出
发布时间:2020-12-15 22:32:53 所属栏目:安全 来源:网络整理
导读:我有一个问题,在BASH varibale中存储docker run -it -d -p 43211:3000 –name appname -h hostname -v $PWD / local_dir:/ root / remote_dir repo / imagename的输出.我试过`backticks`,我也试过像官方文档那样运行它说BASH_VAR = $(docker run …),我甚
我有一个问题,在BASH varibale中存储docker run -it -d -p 43211:3000 –name appname -h hostname -v $PWD / local_dir:/ root / remote_dir repo / imagename的输出.我试过`backticks`,我也试过像官方文档那样运行它说BASH_VAR = $(docker run …),我甚至尝试将输出存储在一个带有docker run -…> $FILE_DESCRIPTOR的文件中,但是没有运气存储错误情况,这个名称已被另一个容器使用的情况,如下所示:
$FATA [0000]来自守护程序的错误响应:冲突.容器7c84d8d703c8已在使用名称“appname”.您必须删除(或重命名)该容器才能重用该名称. 我想说它适用于成功的情况,所以我能够在BASH_VAR中存储完整的容器ID,成功运行应用程序,但不幸的是,这只解决了我面临的问题的一半. 任何帮助,将不胜感激. 谢谢! 解决方法
您可以使用while循环来读取生成的每一行输出,并以这种方式执行某些操作.
while read -r line_of_output; do echo "line: $line_of_output" done < <(docker ... 2>&1) 此外,如果您正在编写交互式脚本,则可能需要查看select bash builtin $help select select: select NAME [in WORDS ... ;] do COMMANDS; done Select words from a list and execute commands. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |