美文网首页
(三)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