



Docker Hub上有大量的镜像可用,我们只需一行命令即可获取。相关语法如下:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
等同于:
docker image pull [OPTIONS] NAME[:TAG|@DIGEST]
在上述语法中,如果没有指定tag,那么默认会使用“:latest”作为标签。
拉取镜像的OPTIONS说明如表4-2所示。
表4-2 OPTIONS说明
清楚了以上选项,我们开始尝试拉取镜像,比如从Docker Hub(默认)获取redis镜像,仅需执行以下命令:
docker pull redis
如图4-5所示,执行上述命令后会自动从Docker Hub获取相关镜像,如果没有设置tag(标签),那么默认会使用latest。
图4-5
我们也可以拉取指定标签镜像,比如获取.NET Core运行时2.2的镜像(见图4-6):
docker pull mcr.microsoft.com/dotnet/core/runtime:2.2
图4-6
从其他镜像仓库拉取镜像的方式基本类似,这里以腾讯云镜像仓库为例。腾讯云的镜像仓库分为公共仓库和项目仓库。
公共仓库拉取无须验证(见图4-7),如下所示:
docker pull hub.tencentyun.com/tgit/redis:4.0.11-alpine
图4-7
项目仓库(包括容器服务下的“我的镜像”)用于托管用户的私有镜像,每个镜像都有特定的唯一标识(镜像的Registry地址+镜像名称+镜像Tag),因此拉取前要先授权。相关开通的过程比较简单,我们这里先略过。下面我们先介绍一下从私有仓库拉取镜像的语法。
步骤01 登录到镜像仓库,需输入密码:
docker login --username=[username] ccr.ccs.tencentyun.com
步骤02 拉取镜像:
docker pull ccr.ccs.tencentyun.com/[namespace]/[ImageName]:[镜像版本号]
假设我们在腾讯云的私有仓库中存在如图4-8所示的镜像。
图4-8
根据以上步骤,总体命令如下:
docker login --username <用户名> --password <仓库密码> ccr.ccs.tencentyun.com docker pull ccr.ccs.tencentyun.com/xinlai/redis:alpine
执行结果如图4-9所示。
图4-9