微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

对docker标签的概念感到困惑

如何解决对docker标签的概念感到困惑

我正在阅读一本书,发现了这条线:

标签只能应用于存储库中的单个图像,而单个图像可以有多个标签。例如,Docker Hub 上的 Java 存储库维护以下标签:7、7-jdk、7u71、7u71-jdk、openjdk-7 和 openjdk-7u71。所有这些标签都应用于同一张图片

我的问题是:为什么一张图片会有多个标签?用不同的标签标记同一张图片的目的是什么?

解决方法

我认为主要有两个原因。

首先是为了方便,所以你可以给同一张图片赋予多个别名。

但是您可以为图像提供其他(特殊)标签,以便将其推送到不同的注册表。

假设(例如)您正在使用 microk8s 并且您启用了注册服务。要推送您的本地映像,您必须使用以前名为 #!/home/fewx/anaconda3/bin/python3.8 import matplotlib.pyplot as plt import xarray as xr import numpy as np import pygrib import cartopy.crs as ccrs import cartopy.feature as cfeat from cartopy.io.shapereader import Reader from cartopy.feature import ShapelyFeature import cartopy import geopandas as gpd import matplotlib.ticker as mticker from cartopy.mpl.gridliner import LONGITUDE_FORMATTER,LATITUDE_FORMATTER ds = xr.open_dataset('/fewxops/Tom/learn_python/data/grib2/gfs.t00z.pgrb2.0p25.f024',engine='cfgrib',filter_by_keys={'typeOfLevel': 'isobaricInhPa'}) ds_z500=ds.sel(isobaricInhPa=500) fig = plt.figure(figsize=(10,10)) ax = fig.add_subplot(1,1,projection=ccrs.PlateCarree()) ax.contourf(ds_z500['longitude'],ds_z500['latitude'],ds_z500['t'],transform=ccrs.PlateCarree()) ax.add_feature(cfeat.COASTLINE.with_scale('50m'),edgecolor='black') ax.add_feature(cfeat.LAKES.with_scale('50m'),edgecolor='black',facecolor='none') ax.add_feature(cfeat.BORDERS.with_scale('50m'),edgecolor='black') gl = ax.gridlines(crs=ccrs.PlateCarree(),draw_labels=True) gl.xlabels_top = False gl.ylabels_left = False gl.xlines = False gl.ylines = False gl.xlocator = mticker.FixedLocator([-180,-120,-60,60,120,180]) gl.ylocator = mticker.FixedLocator([-90,-45,45,90]) gl.xformatter = LONGITUDE_FORMATTER gl.yformatter = LATITUDE_FORMATTER plt.savefig('test_grib.png') 的标签来应用它。

在这种情况下,您的图像将有两个标签 localhost:32000/my-image:my-tagmy-image:my-tag。因此,要将其推送到 microk8s 注册表,您唯一需要做的就是发出命令 localhost:32000/my-image:my-tag(图像标签将被解析以获取要推送到的注册表的 URI ).

显然,上述概念可以应用于任何其他远程注册表。

,

您可以将多个标签用于各种目的。例如,最受欢迎的是拥有“最新”图像。

想象一下,您正在提取最新 ubuntu 映像。 那将是“docker pull ubuntu:latest”。尝试拉取 ubuntu:20.04 - 你会发现你已经拉取了镜像。

注意: 一段时间后,ubuntu:latest 将不再与 ubuntu:20.04 相同,而是使用最新的标签。但是,您将始终拥有指向最新版本的 ubuntu 映像的指针,并且无论您在何处使用它,都无需更改标签。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?