镜像名字的命名规则如下:
本地命名
当使用 `docker build` 命令创建镜像时,可以通过 `-t` 参数指定镜像的名字,例如:
```sh
docker build -t ubuntu-with-vi .
```
这里的 `ubuntu-with-vi` 就是镜像的名字。如果没有指定 `tag`,则默认使用 `latest` 作为标签。
仓库和标签
一个特定镜像的名字由两部分组成: 仓库(repository)和 标签(tag)。它们之间用冒号分隔,格式为 `[repository]:[tag]`。例如:
```sh
ubuntu:latest
```
其中 `ubuntu` 是仓库名称,`latest` 是标签名称。
完整格式
镜像名称还可以包括仓库的域名,格式为 `registry.cn-qingdao.aliyuncs.com/[namespace]/[imageName]:[buildNumber]-[gitCommitHash]`。其中 `[namespace]`、`[imageName]`、`[buildNumber]` 和 `[gitCommitHash]` 分别表示命名空间、镜像名称、构建编号和 Git 提交哈希。
真实镜像名
真实镜像名通常由仓库名、标签和镜像 ID 组成,格式为 `仓库名:标签@ID`。例如:
```sh
nginx:latest@c4b5e0a9b5a3
```
其中 `nginx` 是仓库名,`latest` 是标签,`c4b5e0a9b5a3` 是镜像的 ID。
重命名
如果需要重命名镜像,可以使用 `docker tag` 命令。例如:
```sh
docker tag ubuntu:latest sword2000/unbuntu1604-arm-qt:1.0
```
这将 `ubuntu:latest` 镜像重命名为 `sword2000/unbuntu1604-arm-qt:1.0`。
建议
命名规范:为了便于管理和识别,建议使用有意义的名称,并遵循 `repository:tag` 的格式。
避免使用默认标签:尽量为镜像指定具体的标签,避免使用 `latest`,以便于区分不同版本的镜像。
包含域名:如果使用托管服务(如阿里云容器镜像服务),建议在镜像名称中包含完整的仓库域名。
通过以上规则,可以有效地为 Docker 镜像命名,确保其唯一性和可追溯性。