Docker Push如何判断路径中的哪部分是Registry主机?
Docker镜像标签中Registry与仓库名的判定规则
核心判定逻辑
Docker的规则很直接:镜像标签里第一个包含点(.)或冒号(:)的部分,会被当作Registry服务器地址,剩下的部分才是该Registry下的仓库路径和镜像名。
针对你的场景说明
你提到的docker push aaa.bbb.com/some_folder/another.folder/name:version这条命令里:
aaa.bbb.com会被直接判定为Registry服务器地址;some_folder/another.folder/name是这个Registry下的仓库路径;version是镜像的版本标签。
简单说,仓库就是aaa.bbb.com这个Registry里的some_folder/another.folder/name,而非把aaa.bbb.com算进仓库名里。
无端口时的处理规则
不指定端口的情况下,Docker会按协议用默认端口:
- 用HTTPS(Docker默认的加密传输方式)时,默认走
443端口; - 如果是HTTP(一般需要手动配置允许非加密),默认走
80端口。
它不会额外去解析验证前缀是否是真实的Registry,只要前缀符合“带点的域名格式”,就直接按Registry服务器来处理。
特殊情况:无Registry前缀的镜像
如果镜像标签里没有带点/冒号的前缀(比如ubuntu:latest),Docker会默认关联官方的Docker Hub Registry(docker.io),仓库名就是ubuntu。
内容的提问来源于stack exchange,提问作者Tuga Coder
相关产品推荐
相关产品推荐

