首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docker运行CLI - blanks后\生成`i无效的引用格式`

docker运行CLI - blanks后\生成`i无效的引用格式`
EN

Stack Overflow用户
提问于 2020-08-14 17:15:29
回答 2查看 63关注 0票数 0

我从文档中复制了docker run命令的一部分。它会产生invalid reference format错误。经过反复试验,我发现“行尾”\后出现了一系列空格。就像这样(用*标记的空格表示可见性)。如果没有空白,docker将开始处理(不完整的命令)。

代码语言:javascript
复制
docker run -d --name radicale \
    -p 127.0.0.1:5232:5232 \
    --read-only \
    --init \****   
    --security-opt="no-new-privileges:true" \
    tomsquest/docker-radicale  -- not working

我找不到可以解释错误消息的文档?这应该被认为是一个bug并修复吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-14 18:22:03

shell中的反斜杠(与docker无关)是转义字符。反斜杠后面的字符被不同地处理。通常,换行符结束shell中的一个命令,因此要跨越多个行,您可以转义换行符。同样,空格分隔参数,因此如果您希望将空格本身作为参数传递,则可以对其进行转义。

docker命令行是顺序敏感的,第一个不是前一个标志的标志或参数的内容将被解析为要运行的映像名称。图像名称有不同的语法,docker将所有这些语法统称为引用(您可以传递图像id、远程图像、不带标记的图像、带sha256引脚等,有很多方法可以指定图像)。当图像名称的解析失败时,您会得到一个无效的引用格式。

那么,在这种情况下,为什么图像名称解析失败?因为图像名称是(一个或多个空格字符)。您应该看到的下一个错误是--security-opt="no-new-privileges:true": command not found,它将提示您进入前一行的\,而不是转义换行符。

票数 2
EN

Stack Overflow用户

发布于 2020-08-14 17:50:56

试着在我标记为'*‘的--init后面删除奇怪的字符

代码语言:javascript
复制
docker run -d --name radicale \
    -p 127.0.0.1:5232:5232 \
    --read-only \
    --init \******
****--security-opt="no-new-privileges:true" \
    tomsquest/docker-radicale

例如,尝试使用:

代码语言:javascript
复制
docker run -d --name radicale \
    -p 127.0.0.1:5232:5232 \
    --read-only \
    --init --security-opt="no-new-privileges:true" \
    tomsquest/docker-radicale

然后,再次用\

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63409969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档