说说 Docker 镜像常用命令

400 阅读2分钟

1 拉取镜像

镜像拉取语法很简单,具体语法为 docker pull {image_repository_name}。{ image_repository_name } 是镜像的仓库名称。记得先配置好镜像加速器,加快镜像拉取速度。

2 列出已有镜像 

docker images

已有镜像列表是一张表格,每个字段含义如下:

字段 | 说明  --- | --- REPOSITORY | 镜像名称 TAG | 镜像标签,一般是版本名称;latest 表示最新版本 IMAGE ID | 镜像 ID CREATED | 镜像创建时间;离现在时间多久作为格式表述 SIZE | 镜像大小

其中 IMAGE ID 是根据该镜像的元数据配置文件采用sha256算法的计算获得。实际展示是sha256算法计算结果的前 12 位。

也可以加上 --no-trunc 参数(docker images --no-trunc),打印出完整 IMAGE ID:

no-trunc 是non-truncated 的简写形式。

truncated /ˈtrʌŋkeɪt/ 

To shorten by or as if by cutting off.

3 查询镜像

除了在 Docker Hub 网站上查询镜像之外,还可以直接使用命令行来查询。语法为:docker search {image_name_key}。{image_name_key} 为镜像名称关键字。比如查询关键字为 “python”的镜像:

查询出来的结果也是一张列表,其中每个字段的含义如下:

字段 | 说明  --- | --- NAME | 镜像名称;一般来说带 //表示发布自非官方仓库 DESCRIPTION | 镜像说明,默认只显示部分描述 STARS | 镜像评星数,可以作为镜像选择的一个维度 OFFICIAL | 是否为官方版本,一般来说,官方版本更稳定 AUTOMATED | 是否自动构建

用户可将自己的 Docker Hub绑定到Github 或 Bitbucket 账号上,当代码提交后,可自动构建镜像仓库。也就是与代码版本控制系统绑定,实现代码变更自动构建镜像功能,类似于 Jenkins 可以检测代码变更,然后自动进行项目构建。

在 Docker Hub 中可以给某个你所喜欢的镜像评星,这有点像 GitHub 的评星数。

Search 命令很强大,可以加过滤条件,也可以打印出完整的镜像描述说明。比如我们想搜索出打星数 ≥ 30 并且打印出完整的镜像描述说明的 Python 镜像,那么就可以输入以下命令:docker search --filter=stars=30 --no-trunc python

4 删除镜像

docker rmi [REPOSITORY]:[TAG]

REPOSITORY 指的是镜像名称;TAG 指的是镜像标签。

比如要删除名为 192.168.33.10:50000/ms/app-config且tag 为latest的镜像。我们可以执行docker rmi 192.168.33.10:50000/ms/app-config:latest 命令:

5 导入与导出镜像

测试环境一般在内网,如果不方便直连的话,就会用到镜像导入与导出命令。

(1) 导出镜像

docker save [REPOSITORY:TAG] > xxx.tar

形如:

docker save 191.168.10.xxx:8083/ms/app-config:latest > app-config.tar

也可以指定镜像包的放置路径:

docker save [REPOSITORY:TAG] > [path][xxx.tar]

形如:

cd

docker save 191.168.10.xxx:8083/ms/app-config:latest > /host_data/images/app-config.tar

(2) 导入镜像

docker load < xxx.tar,形如:docker load < app-config.tar