Hos*_*com 37 docker docker-compose
使用我的一个项目进入Docker错误:
invalid reference format: repository name must be lowercase
此通用消息的各种原因是什么?
经过一番努力后我已经弄明白了,所以我将回答我自己的问题,以便在此处记录,因为在进行网络搜索时解决方案不会立即出现,而且因为此错误消息没有描述Docker遇到的直接问题.
Jöc*_*ker 29
在我的情况下是-emysql docker的参数之前
docker run --name mysql-standalone -e MYSQL_ROOT_PASSWORD=hello -e MYSQL_DATABASE=hello -e MYSQL_USER=hello -e MYSQL_PASSWORD=hello -d mysql:5.6
Run Code Online (Sandbox Code Playgroud)
还要检查是否缺少空格
BMi*_*tch 27
泊坞窗中的“引用”是指向图像的指针。它可以是映像名称,映像ID,名称中包括注册表服务器,使用sha256标记固定映像以及可以用于指向要运行的映像的其他任何内容。
该invalid reference format错误消息表示docker无法将您提供的字符串转换为图像。这可能是无效的名称,或者它可能是来自docker run命令行前面的解析错误(如果您使用的是这种方式)。对于撰写文件,如果在图像名称中扩展变量,则该变量可能无法正确扩展。
在docker run命令行中,这通常是导致不用空格引用参数,并弄错了命令行顺序的结果。命令行顺序为:
docker ${args_to_docker} run ${args_to_run} image_ref ${cmd_to_exec}
Run Code Online (Sandbox Code Playgroud)
将args传递给运行时最常见的错误是卷映射扩展了路径名,该路径名中包含空格,而不引用路径或转义该空格。例如
docker run -v $(pwd):/data image_ref
Run Code Online (Sandbox Code Playgroud)
修复很简单:
docker run -v "$(pwd):/data" image_ref
Run Code Online (Sandbox Code Playgroud)
小智 8
就我而言,问题出在参数安排上.最初我有--name环境参数之后的参数,然后是体积和attach_dbs 参数,以及命令末尾的图像,如下所示.
docker run -p 1433:1433 -e sa_password=myComplexPwd -e ACCEPT_EULA=Y --name sql1 -v c:/temp/:c:/temp/ attach_dbs="[{'dbName':'TestDb','dbFiles':['c:\\temp\\TestDb.mdf','c:\\temp\\TestDb_log.ldf']}]" -d microsoft/mssql-server-windows-express
Run Code Online (Sandbox Code Playgroud)
重新排列下面的参数后一切正常(基本上放--name参数后跟图像名称).
docker run -d -p 1433:1433 -e sa_password=myComplexPwd -e ACCEPT_EULA=Y --name sql1 microsoft/mssql-server-windows-express -v C:/temp/:C:/temp/ attach_dbs="[{'dbName':'TestDb','dbFiles':['C:\\temp\\TestDb.mdf','C:\\temp\\TestDb_log.ldf']}]"
Run Code Online (Sandbox Code Playgroud)
就我而言,图片名称定义为docker-compose.yml包含大写字母。提到的错误消息repository而不是错误的事实image并不能帮助描述问题,因此花了一些时间才弄清楚。
让我强调一下,Docker甚至不允许混合字符。
好:
docker build -t myfirstechoimage:0.1 .
坏:
docker build -t myFirstEchoImage:0.1 .
小智 5
在 MacOS 上,当您在 iCloud 驱动器上工作时,您的 $PWD 将包含一个目录“移动文档”。它似乎不喜欢这个空间!
作为一种解决方法,我将我的项目复制到本地驱动器,其中我的项目文件夹的路径中没有空间。
我看不出有什么方法可以绕过 iCloud 的默认路径,它是 ~/Library/Mobile Documents/com~apple~CloudDocs
“移动文档”中路径中的空格似乎是 docker run 不喜欢的。
| 归档时间: |
|
| 查看次数: |
55581 次 |
| 最近记录: |