'registry/rabbit',
'registry/rabbit:3',
'rabbit',
'rabbit:3'
Run Code Online (Sandbox Code Playgroud)
试图提出一个正则表达式,将rabbit在上述四种情况下匹配。似乎很容易,但是我的正则表达式使我失望。
格式指定得有点少,但这似乎可行:
^(?:(?=[^:\/]{1,253})(?!-)[a-zA-Z0-9-]{1,63}(?<!-)(?:\.(?!-)[a-zA-Z0-9-]{1,63}(?<!-))*(?::[0-9]{1,5})?/)?((?![._-])(?:[a-z0-9._-]*)(?<![._-])(?:/(?![._-])[a-z0-9._-]*(?<![._-]))*)(?::(?![.-])[a-zA-Z0-9_.-]{1,128})?$
Run Code Online (Sandbox Code Playgroud)
从文档:
映像名称由斜杠分隔的名称组成,可以选择以注册表主机名作为前缀。主机名必须符合标准DNS规则,但不得包含下划线。如果存在主机名,则可以选择后跟端口号:8080。如果不存在,则该命令默认使用Docker的公共注册表,该注册表位于Registry-1.docker.io。名称组件可能包含小写字符,数字和分隔符。分隔符定义为一个句点,一个或两个下划线或一个或多个破折号。名称组件不能以分隔符开头或结尾。
标签名称可以包含小写和大写字符,数字,下划线,句点和破折号。标签名称不能以句点或破折号开头,并且最多可以包含128个字符。
测试在这里。