首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过示例将容器发布到码头

通过示例将容器发布到码头
EN

Stack Overflow用户
提问于 2018-02-19 21:05:54
回答 1查看 5.7K关注 0票数 1

我试图弄清楚如何将版本化的Docker容器发布到Quay.io,而不知道如何做到这一点,在他们的医生里。从医生那里:

代码语言:javascript
复制
# 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>

然而,这让我非常困惑:

  • 如果我希望使用1.0.0-SNAPSHOT1.0-rc2.03.1.6-G.A标记/版本化的容器怎么办?我应该在哪里指定实际的标签名称/版本?
  • 当我运行docker push命令时,Docker如何知道要发布哪个(标记/版本)容器?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-19 21:32:10

首先,值得注意的是,您不将容器推送到注册表。你推图像。问题中的docker commit命令基于活动容器创建新的映像。

当向图像分配标记时--使用更常见的docker tag命令1,或者使用docker commit --标记的格式是[<registry>/]<repository>[:<tag>],其中[...]用于表示选项组件。因此,例如,您可以在Docker Hub上标记一个针对您的帐户的图像,如下所示:

代码语言:javascript
复制
docker tag smeeb/webserver

这将被分配给latest标记,因为您没有显式地指定一个。显式分配标记awesome而不是latest

代码语言:javascript
复制
docker tag smeeb/webserver:awesome

在为备用注册表标记图像时,将注册表名称作为标记的一部分包括在内,如下所示:

代码语言:javascript
复制
docker tag <imageId> quay.io/smeeb/webserver

在这里,quay.io是注册表,smeeb/webserver是存储库,您已经隐式地分配了latest标记。相反,您可以显式地:

代码语言:javascript
复制
docker tag <imageId> quay.io/smeeb/webserver:1.0.0-SNAPSHOT

以此类推。在使用docker commit创建图像时,可以使用相同的语法。

1:我看到使用docker tag更普遍的原因是docker commit的使用通常被认为是反模式。使用Dockerfile创建新映像,这样可以更容易地复制相同的配置(并允许您对映像的配置进行版本控制)。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48874167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档