在推送到docker公共存储库时,是否需要手动标记"最新"?

Pau*_*aul 30 docker dockerhub

假设我有一张图片 me/mystuff:v0.0.1

我发现是否将其推送到存储库:

docker push me/mystuff:v0.0.1 
Run Code Online (Sandbox Code Playgroud)

latest 没有被创建,并且从另一台机器拉出它会抱怨,例如

ssh me@faraway
(faraway)  $ docker run -it me/mystuff /bin/bash
Run Code Online (Sandbox Code Playgroud)

将导致未找到错误 me/mystuff:latest

我可以添加最新的标记并显式推送到公共存储库:

docker login me
docker tag me/mystuff:v0.0.1 me/mystuff:latest
docker push me/mystuff:latest
Run Code Online (Sandbox Code Playgroud)

然后从另一台机器:

docker pull me/mystuff
Run Code Online (Sandbox Code Playgroud)

会有效,因为最新的存在.

我也发现,一旦最新存在,当推送新的编号版本时它不会自动更新.

我可以以某种方式消除这个手动标记最新的步骤并最新自动指向最新编号的版本?

或者是出于某种原因,例如允许从生产版本(标记为最新版本)中分离开发版本(仅使用vN.NN标记)?

Usm*_*ail 27

如果没有指定,则最新版本只是标记的默认值.如果您按下标记的图像,它不会替换标记为最新的当前图像.

  • 注意:没有标签推送(即:`docker push foo/bar`)会推送标有repo foo/bar的所有本地图像.如果其中一个没有标签,它可能会推出一个'最新'标签(如@Usman所说).如果标记了所有本地图像,则仅推送这些标记(可能不包括"最新").请注意,您可以根据[此答案](http://stackoverflow.com/a/25214186/420867)轻松地在本地图像上创建多个标记,例如:创建一个本地"最新"标记,然后您可以按下该标记. (7认同)
  • 肯定`docker标记我/ mystuff:v0.0.1 me/mystuff:latest`会起作用,你不需要两个标签. (3认同)
  • 是否有命令将其作为标记和最新消息推送?还是我需要两个命令?例如:docker push foo / bar:v1 docker push foo / bar (2认同)
  • 此外,Docker 非常智能,如果您推送两个标签,并且它们都具有相同的底层哈希值,它会识别它并简单地添加第二个标签名称。 (2认同)