Docker 镜像
镜像是 Docker 三大核心概念中最重要的,Docker 运行容器前需要本地存在对应的镜像, 如果镜像不存在, Docker 会尝试先从默 认镜像仓库下载(默认使用 Docker Hub 公共注册服务器中的仓库), 用户也可以通过配置,使用自定义的镜像仓库。
获取镜像
#拉取镜像 [imge] 代表可以省略
docker [image] pull IMAGE_NAME:TAG
通过上面的命令就可以从Docker镜像源拉取镜像了,其中IMAGE_NAME是镜像名称,TAG是镜像的标签。如果不指定TAG的话,默认是latest
docker pull IMAGE_NAME:TAG 其实相当于 docker pull registry.hub.docker.com/IMAGE_NAME:TAG命令,即从官方的镜像仓库拉取镜像。如果想从非官方仓库拉取镜像的话,此时应该改为
非官方仓库地址_URL/IMAGE_NAME:TAG
# pull子命令支持的选项主要包括:
-a, --all-tags=true|false 是否获取仓库中所有镜像,默认为否
--disable-content-trust 取消镜像的内容校验,默认为真
--registry-mirror=proxy_URL 可以指定镜像代理服务器地址来加速Docker镜像拉取过程
查看镜像信息
docker images或docker image ls命令可以列出本地已有镜像基本信息
![](https://img.haomeiwen.com/i1455014/a1a040911eddb80b.png)
## images 子命令主要支持如下选项
-a, --all=true|false 列出所有(包括临时文件)镜像文件,默认为否
--digests=true|false 列出镜像的数字摘要值,默认为否
-f,--filter=[] 过滤列出的镜像,如dangling=true只显示悬虚镜像
--format="{{.ID}} {{.Repository}} {{.CreatedSince}} {{.CreatedAt}}" 控制输出格式
--no-trunc=true|false 对输出结果太长的部分是否进行截断,默认为真
-q, --quiet=ture|false 仅输出ID信息,默认为否
使用tag命令添加镜像标签
为了方便区分镜像,可以使用tag命令来为本地镜像任意的添加新的标签。
docker tag mysql:latest yuxuan:1.0
使用inspect命令查看详细信息
使用inspect命令可以获取该镜像的详细信息,包括制作者,适应架构,各层的数字摘要等
docker inspect mysql:latest
## 返回的信息比较多,可以通过-f来过滤
docker inspect -f "{{.Architecture}} {{.Size}} {{.Metadata}}" mysql:latest
使用history命令查看镜像历史
使用history命令可以列出镜像各层的创建信息。
![](https://img.haomeiwen.com/i1455014/672920db0a5b74f7.png)
搜索镜像
使用 docker search 命令可以搜索 Docker Hub 官方仓库中的镜像。 语法为 docker search [option] keyword。支持的命令选项主要包括:
-f,--filter 过滤输出内容;
--format 格式化输出内容
--limit:限制输出结果个数, 默认为 25
--no-trunc: 不截断输出结果
删除和清理镜像
使用 docker rmi 或 docker image rm 命令可以删除镜像
docker rmi mysql:lastest
支持选项有:
-f, -force 强制删除镜像,及时有容器依赖它
-no-prune 不要清理未带标签的父镜像
使用Docker一段时间,系统中可能会遗留一些临时的镜像文件,以及一些没有被使用的镜像,可以通过docker image prune命令来进行清理。
创建镜像
创建镜像的方法主要有三种:基于已有镜像的容器创建、 基于本地模板导入、 基于Dockerfile创建。
基于已有容器创建
该方法主要是使用 docker [container] commit 命令。
命令格式为 docker [container] commit [OPTIONS] CONTAINER IMAGE_NAME:TAG
主要选项包括:
-a, --author="" 作者信息
-c, --change=[] 提交的时候执行 Dockerfile 指令,包括CMD|ENTRYPOINT|ENV|EXPOSE|LABEL|ONBUILD|USER|VOLUME|WORKDIR等
-m,--message="" 提交消息
-p, --pause=true 提交时暂停容器运行
基于本地模板导入
用户也可以直接从一个操作系统模板文件导入一个镜像, 主要使用 docker [container] import命令。格式为 docker [image] import [OPTIONS] file|URL| IMAGE_NAME:TAG
基于Dockerfile创建
基于 Dockerfile 创建是最常见的方式。 Dockerfile 是一个文本文件, 利用给定的指令描述基于某个父镜像创建新镜像的过程。具体命令docker build
存入和载入镜像
存出镜像
如果要导出镜像到本地文件,可以使用docker save命令。该命令支持-o,-output string参数,导出镜像到指定文件中。
docker save -o ./yuxuan.tar hub.c.163.com/library/redis:3.2
载入镜像
可以使用 docker [image] load 将导出的 tar 文件再导人到本地镜像库。
docker load -i ***.tar
网友评论