美文网首页
(三)Docker 镜像

(三)Docker 镜像

作者: deve_雨轩 | 来源:发表于2021-08-27 09:33 被阅读0次

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命令可以列出本地已有镜像基本信息

image.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命令可以列出镜像各层的创建信息。


image.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

相关文章

网友评论

      本文标题:(三)Docker 镜像

      本文链接:https://www.haomeiwen.com/subject/xbleiltx.html