假设我有一个图像,我想标记为0.10.24
(在我的例子中,它是一个包含Node.js 0.10.24的图像)。我使用一个Dockerfile和执行docker build
并通过使用-t
参数提供一个标记来构建该图像。
我希望有一天我会有该图像的其他版本,所以我将重新运行该过程,只是使用另一个标记名。
到目前为止,一切都很好。这很好,一切都很好。
但是,这也是问题的开始,我还希望总是有最新的图像标记为广告latest
。
我该怎么做?我真的需要在完全相同的版本上重新运行docker build
吗?但是这次使用另一个标签,有没有更好的选择?
8条答案
按热度按时间gr8qqesn1#
构建映像时可以有多个标记:
参考:https://docs.docker.com/engine/reference/commandline/build/#tag-image-t
yhived7q2#
有了图像后,您可以使用
1.使用creack/node:latest构建并标记映像
1.添加新标记
1.您可以使用此命令并跳过build中的-t部分
efzxgjgh3#
这是我的bash脚本
如果您使用
link
或
或
清除命令:
Docker 1.13引入了清理命令。要删除所有未使用的容器、映像、网络和宗卷:
或单独使用:
4urapxun4#
ID=$(docker build -t creack/node .)
对我不起作用,因为ID
将包含构建的输出。所以我使用这个小BASH脚本:
kqlmhetl5#
只需从
docker images
获取ID:不需要 * 临时文件 * 并提供完整的生成输出。您仍然可以将其重定向到
/dev/null
或日志文件。50few1ms6#
Aaron答案的变体。使用sed而不使用临时文件
ktca8awb7#
要在生成命令期间为Docker文件给予标记,请执行以下操作:
否则,它会自动为您Docker映像给予
latest
标记。mspsb9vt8#
Hye这是非常容易的,你只需要按照以下步骤-
因此,要在Docker中创建和标记图像,我们可以使用以下命令
首先通过运行以下命令取出Docker id
复制-〉名称
我用
docker build -t condescending_greider/newdoc:latest .
感谢您抽出宝贵时间