加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读