Docker 通过示例将容器发布到码头
我试图找出如何将一个版本化的Docker容器发布到Quay.io,但没有看到如何做到这一点。从文档中:Docker 通过示例将容器发布到码头,docker,versioning,Docker,Versioning,我试图找出如何将一个版本化的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 <con
# 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>
#登录到Quay.io
docker登录quay.io(现在将提示输入用户名+密码)
#拿你的
docker ps-l
#在那个容器上贴上标签
码头码头//
#现在将其发布到Quay.io
码头工人推码头//
然而,这让我非常困惑:
- 如果我想用
,或1.0.0-SNAPSHOT
,或1.0-rc
或2.0
,对容器进行标记/版本控制,该怎么办?在哪里指定实际的标记名/版本3.1.6-G.A
- 当我运行
命令时,docker如何知道要发布哪个(标记/版本化)容器docker push
docker commit
命令基于活动容器创建新图像
为图像分配标记时——使用更常见的[1]命令docker tag
或使用docker commit
——标记的格式为[/][:]
,其中[…]
用于表示选项组件。因此,例如,您可以在Docker Hub上标记一个以您的帐户为目标的图像,如下所示:
docker tag smeeb/webserver
这将被分配latest
标记,因为您没有明确指定一个。要显式分配标签awesome
,而不是latest
:
docker tag smeeb/webserver:awesome
为备用注册表标记图像时,应将注册表名作为标记的一部分,如下所示:
docker tag <imageId> quay.io/smeeb/webserver
等等。使用docker commit
创建图像时,可以使用相同的语法
[1] :我看到使用
docker标记
更常见的原因是使用docker提交
通常被认为是一种反模式。使用Dockerfile
创建新映像,这样可以更轻松地复制相同的配置(并允许您对映像的配置进行版本控制)。首先,值得注意的是,您不会将容器推送到注册表。你推图像。问题中的docker commit
命令基于活动容器创建新图像
为图像分配标记时——使用更常见的[1]命令docker tag
或使用docker commit
——标记的格式为[/][:]
,其中[…]
用于表示选项组件。因此,例如,您可以在Docker Hub上标记一个以您的帐户为目标的图像,如下所示:
docker tag smeeb/webserver
这将被分配latest
标记,因为您没有明确指定一个。要显式分配标签awesome
,而不是latest
:
docker tag smeeb/webserver:awesome
为备用注册表标记图像时,应将注册表名作为标记的一部分,如下所示:
docker tag <imageId> quay.io/smeeb/webserver
等等。使用docker commit
创建图像时,可以使用相同的语法
[1] :我看到使用
docker标记
更常见的原因是使用docker提交
通常被认为是一种反模式。使用Dockerfile
创建您的新映像,这样可以更容易地复制相同的配置(并允许您对映像的配置进行版本控制)。非常好的回答,谢谢@larsks(+1)-假设您只能在执行docker构建后执行docker标记
?我想是这样的,因为在你建立一个图像之前,不会有任何可标记的东西,对吗?再次感谢!只能使用docker tag
命令标记现有图像。您可以使用-t
参数将标记分配给docker build
作为docker build
过程的一部分。回答太棒了,谢谢@larsks(+1)-假设您只能在执行docker build
后执行docker标记是否安全?我想是这样的,因为在你建立一个图像之前,不会有任何可标记的东西,对吗?再次感谢!只能使用docker tag
命令标记现有图像。您可以使用-t
参数将标记分配给docker build
作为docker build
过程的一部分。