Docker 构建标签存储库名称
Docker build tag repository name
可以通过 docker 构建命令轻松构建 docker 图像。
我想知道的是您在构建图像时可以给出的 t 标志。例如:
$ docker build -t ouruser/sinatra:v2 .
根据文档,t 标志用于标记和命名目的。名称是':'之前的部分,标签是它之后的部分。所以在我们的例子中,名字是ouruser/sinatra,标签是v2.
我以为这是图像名称和标签。但显然,该名称实际上是某个存储库名称?为什么我认为是?好吧,因为如果您在此之后使用命令列出图像:
docker images
您会得到这样的列表:
REPOSITORY TAG IMAGE ID CREATED SIZE
ouruser/sinatra latest 5db5f8471261 11 hours ago 446.7 M
砰!重大震撼!你以为你正在创建一个带有名称的图像,相反,你指定了一些存储库!与此相关,我有一些疑问:
- 此存储库位于何处?
- 我可以在不创建存储库的情况下命名图像吗?
- 在哪里以及如何使用或可以使用此存储库?
- 在哪里可以找到有关此存储库的更多信息?我只找到了这个,老实说它并没有说明什么:docker build docs
- 为什么使用由两部分组成的名称很常见:somename/someothername?
感谢您的帮助!
我相信这里的混淆是 "repository." 这个词 在 Docker 中,存储库是任何一组具有相同名称的图像构建,并且可能有多个标签。 "registry" 服务器,如 hub.docker.com 或您自己的私有注册表,拥有多个存储库,例如redis repository on the public registry。该存储库针对不同版本的构建具有多个标签。
所以有了这个背景,回答你的问题:
- ouruser/sinatra 位于您的本地 Docker 主机上,直到您执行
docker push
- 不,存储库和标签是图像的名称。
- 虽然在您的本地系统上,您可以在本地使用此图像。将其推送到注册表后,您就可以将其下拉到有权访问该注册表的任何其他 Docker 主机。如果您执行
docker save
,您可以将该图像保存到另一台主机上 docker load
。
- 我确定 docs.docker.com 上的某处有相关文档,但我从 class.
中了解到
- username/imagebase 格式即将支持推送到 hub.docker.com 中您自己的命名空间。否则,制作第一个 "Redis" 图像的人将其称为 "redis",而下一个人制作自己的存储库称为 "redis-improved",我们很快就会陷入混乱的名称混乱之中,不清楚是谁做了什么,什么是有信誉的形象。您在本地制作的图像不需要命名,但仍然受到鼓励,因为如果您从 hub.docker.com 中提取的图像由 Docker 自己维护,则它们可能缺少用户名。没有你的用户名,你将不知道哪些镜像是你下载的,哪些是你自己构建的。
可以通过 docker 构建命令轻松构建 docker 图像。
我想知道的是您在构建图像时可以给出的 t 标志。例如:
$ docker build -t ouruser/sinatra:v2 .
根据文档,t 标志用于标记和命名目的。名称是':'之前的部分,标签是它之后的部分。所以在我们的例子中,名字是ouruser/sinatra,标签是v2.
我以为这是图像名称和标签。但显然,该名称实际上是某个存储库名称?为什么我认为是?好吧,因为如果您在此之后使用命令列出图像:
docker images
您会得到这样的列表:
REPOSITORY TAG IMAGE ID CREATED SIZE
ouruser/sinatra latest 5db5f8471261 11 hours ago 446.7 M
砰!重大震撼!你以为你正在创建一个带有名称的图像,相反,你指定了一些存储库!与此相关,我有一些疑问:
- 此存储库位于何处?
- 我可以在不创建存储库的情况下命名图像吗?
- 在哪里以及如何使用或可以使用此存储库?
- 在哪里可以找到有关此存储库的更多信息?我只找到了这个,老实说它并没有说明什么:docker build docs
- 为什么使用由两部分组成的名称很常见:somename/someothername?
感谢您的帮助!
我相信这里的混淆是 "repository." 这个词 在 Docker 中,存储库是任何一组具有相同名称的图像构建,并且可能有多个标签。 "registry" 服务器,如 hub.docker.com 或您自己的私有注册表,拥有多个存储库,例如redis repository on the public registry。该存储库针对不同版本的构建具有多个标签。
所以有了这个背景,回答你的问题:
- ouruser/sinatra 位于您的本地 Docker 主机上,直到您执行
docker push
- 不,存储库和标签是图像的名称。
- 虽然在您的本地系统上,您可以在本地使用此图像。将其推送到注册表后,您就可以将其下拉到有权访问该注册表的任何其他 Docker 主机。如果您执行
docker save
,您可以将该图像保存到另一台主机上docker load
。 - 我确定 docs.docker.com 上的某处有相关文档,但我从 class. 中了解到
- username/imagebase 格式即将支持推送到 hub.docker.com 中您自己的命名空间。否则,制作第一个 "Redis" 图像的人将其称为 "redis",而下一个人制作自己的存储库称为 "redis-improved",我们很快就会陷入混乱的名称混乱之中,不清楚是谁做了什么,什么是有信誉的形象。您在本地制作的图像不需要命名,但仍然受到鼓励,因为如果您从 hub.docker.com 中提取的图像由 Docker 自己维护,则它们可能缺少用户名。没有你的用户名,你将不知道哪些镜像是你下载的,哪些是你自己构建的。