如何解决对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-tag
和 my-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 举报,一经查实,本站将立刻删除。