You need to enable JavaScript to run this app.
导航

通过 Nerdctl 推拉镜像

最近更新时间2023.08.15 19:57:33

首次发布时间2022.11.17 10:15:08

镜像仓库支持通过命令行完成镜像的推送和拉取等操作。本文介绍如何通过主流命令行工具 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

推送镜像和拉取前,都需要提前获取目标镜像的 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 

执行结果示例

执行完成以后,即可在控制台查看已推送的镜像。
alt

第五步:拉取镜像

成功登录镜像仓库后,也可以从镜像仓库中拉取已托管的镜像。

执行命令

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