镜像仓库支持通过命令行完成镜像的推送和拉取等操作。本文介绍如何通过主流命令行工具 nerdctl 在镜像仓库推拉镜像。
您需要先获取镜像仓库实例的访问域名、镜像仓库命名空间名称、OCI 制成品仓库名称等参数信息,然后结合 nerdctl 命令完成镜像推拉的操作。
说明
本文以 macOS 系统为例,为您介绍通过 nerdctl 使用镜像仓库的方法。macOS 不支持直接使用 nerdctl,需要通过 lima 提供的虚拟机配合使用,详情参见 nerdctl/macOS。
获取镜像仓库实例的登录账号、密码和访问域名后,即可通过以下命令登录实例。
lima nerdctl login --username=[用户名] --paasword=[密码] [镜像仓库访问域名]
执行命令示例
lima nerdctl login --username=*****@210013**** --paasword=******* enterprise-1-cn-guangzhou.cr.volces.com
执行结果实例
显示 Login Succeeded
即表示登录成功。
WARN[0000] WARNING! Using --password via the CLI is insecure. Use --password-stdin. WARNING: Your password will be stored unencrypted in /home/bytedance.linux/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded
推送镜像和拉取前,都需要提前获取目标镜像的 ID,如示例中 IMAGE ID 列的 e3b7de64****
。
执行命令
lima nerdctl images
执行结果示例
REPOSITORY TAG IMAGE ID CREATED PLATFORM SIZE BLOB SIZE nginx alpine e3b7de64**** About an hour ago linux/amd64 26.4 MiB 9.8 MiB
创建一个别名镜像归入目标 OCI 制品仓库,并设置版本号。例如本示例中的 enterprise-1-cn-guangzhou.cr.volces.com/vpc-****/vpc-j7w2****:nerdctl
。
执行命令
lima nerdctl tag [ImageId] [镜像仓库访问域名]/[命名空间名称]/[OCI 制品仓库名称]:[镜像版本号]
执行命令示例
lima nerdctl tag e3b7de64**** enterprise-1-cn-guangzhou.cr.volces.com/vpc-****/vpc-j7w2****:nerdctl
执行结果示例
执行完成后即可看到目标 OCI 制品仓库中新增的镜像,并设置了 TAG nerdctl
。
REPOSITORY TAG IMAGE ID CREATED PLATFORM SIZE BLOB SIZE nginx alpine e3b7de64**** About an hour ago linux/amd64 26.4 MiB 9.8 MiB enterprise-1-cn-guangzhou.cr.volces.com/vpc-****/vpc-j7w2**** nerdctl e3b7de64**** 10 seconds ago linux/amd64 26.4 MiB 9.8 MiB
将已归类的镜像推送至镜像仓库。
执行命令
lima nerdctl push [镜像仓库访问域名]/[命名空间名称]/[OCI 制品仓库名称]:[镜像版本号]
执行命令示例
lima nerdctl push enterprise-1-cn-guangzhou.cr.volces.com/vpc-****/vpc-j7w2****:nerdctl
执行结果示例
执行完成以后,即可在控制台查看已推送的镜像。
成功登录镜像仓库后,也可以从镜像仓库中拉取已托管的镜像。
执行命令
lima nerdctl pull [镜像仓库访问域名]/[命名空间名称]/[OCI 制品仓库名称]:[镜像版本号]
执行命令示例
lima nerdctl pull enterprise-1-cn-guangzhou.cr.volces.com/vpc-****/vpc-j7w2****:latest
执行结果示例
REPOSITORY TAG IMAGE ID CREATED PLATFORM SIZE BLOB SIZE nginx alpine e3b7de64**** 2 days ago linux/amd64 26.4 MiB 9.8 MiB enterprise-1-cn-guangzhou.cr.volces.com/vpc-****/vpc-j7w2**** latest b04121cfcd5d 28 seconds ago linux/amd64 1.3 MiB 773.3 KiB enterprise-1-cn-guangzhou.cr.volces.com/vpc-****/vpc-j7w2**** nerdctl e3b7de64**** 2 days ago linux/amd64 26.4 MiB 9.8 MiB