docker:invalid reference format 原因及解决办法

本文只介绍生产环境中遇到的问题,为docker拉取、下载、推送镜像相关内容的问题,现根据情况列出解决办法之一!

  • shell脚本中定义变量给docker,出现invalid reference format

demo.sh

#!/bin/bash
var='cat /data/test/***.txt | grep test'
for line in $var
do
	echo "已查到相关镜像,即将拉取~"
	echo "准备拉取:"$var
	docker pull $line
done

[上面脚本仅为提供测试,该脚本中在执行到docker pull的过程中会报错invalid reference format];在命令行执行docker pull *****.镜像 可以成功,在脚本中不行,sh -x 查看后 发现 变量传过来的 l i n e 值 带 有 ′ ′ 符 号 , 但 是 查 看 line值带有 '' 符号,但是查看 linevar是对应的镜像名没问题;

经排查后原因为:” ****.txt 的镜像文件是从windows里拉到linux中的,存在换行符\n 由于换行符在shell里是默认不显示的,为空格占位符 “,所以可直接复制windows文档中的所有内容到linux中,也可以使用 grep test ****.txt | tr ‘\n’ ’ ’ && cat ****.txt | grep test | tr ‘\n’ ’ ’ 使用 tr 来将\n 替换。
  • 将换行符替换后再次测试脚本可成功,如遇到其他情况可参考shell中识别变量的相关写法和命令修改,也存在符号大小写,字母大小写,中英文符号对应的问题;
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宇弟儿《劉》lxy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值