我试图弄清楚如何将版本化的 Docker 容器发布到 Quay.io,但在他们的文档中没有看到如何这样做。从文档:
# Login to Quay.io
docker login quay.io (will now be prompted for username + password)
# Get your <containerID>
docker ps -l
# Tag that container by <containerId>
docker commit <containerId> quay.io/<myUsername>/<myRegistry>
# Now publish it to Quay.io
docker push quay.io/<myUsername>/<myRegistry>
Run Code Online (Sandbox Code Playgroud)
然而这让我很困惑:
1.0.0-SNAPSHOT, or 1.0-rc, or 2.0or3.1.6-G.A怎么办?我在哪里指定实际的标签名称/版本?docker push命令时,Docker 如何知道要发布哪个(标记/版本化)容器?首先,值得注意的是,您不会将容器推送到注册表。你推图像。docker commit您问题中的命令基于活动容器创建新图像。
当为图像分配标签时——使用docker tag更常见的命令 [1],或者使用时docker commit——标签的格式是[<registry>/]<repository>[:<tag>],其中[...]用于表示选项组件。因此,例如,您可以像这样在 Docker Hub 上标记针对您的帐户的图像:
docker tag smeeb/webserver
Run Code Online (Sandbox Code Playgroud)
这将被分配latest标签,因为您没有明确指定一个。要显式分配标签awesome而不是latest:
docker tag smeeb/webserver:awesome
Run Code Online (Sandbox Code Playgroud)
当您为备用注册表标记映像时,您将注册表名称作为标记的一部分包括在内,如下所示:
docker tag <imageId> quay.io/smeeb/webserver
Run Code Online (Sandbox Code Playgroud)
在这里,quay.io是注册表,smeeb/webserver是存储库,您已经隐式分配了latest标签。您可以明确表示:
docker tag <imageId> quay.io/smeeb/webserver:1.0.0-SNAPSHOT
Run Code Online (Sandbox Code Playgroud)
等等。使用docker commit.
[1]:我看到 usingdocker tag更常见的原因是 use ofdocker commit通常被认为是一种反模式。使用 aDockerfile创建您的新映像,这样可以更轻松地重现相同的配置(并允许您对映像的配置进行版本控制)。
| 归档时间: |
|
| 查看次数: |
3151 次 |
| 最近记录: |