Docker之镜像操作

2019-07-15  本文已影响0人  747大雄

Docker之镜像操作

  1. 获取镜像

    未指定仓库路径时,默认从docker hub上面下载镜像,如果未指定标签版本,默认下载最新版并且跟随最新版变换而变化,生成环境一定要指定标签版本。

    • 用法:docker pull [仓库路径][镜像名][标签]

    • 示例:docker pull daocloud.io/library/mysql:latest

    • 主要参数:

      • --disable-content-trust 取消镜像的内容校验,默认为真
  2. 查看镜像信息

    • 列出所有镜像 docker images
    • 主要参数:
      • --all=true|false 列出所有镜像文件(包括临时文件),默认为否
      • --filter=[],根据规则过滤列出的镜像
      • --no-trunc=true|false 对输出结果太长的字段是否截断,默认是
  3. 使用tag命令添加镜像新标签名

    为了方便后续使用特定镜像,可以为镜像添加新的标签名,他们只是标签名不一样,实际的镜像id还是一样的。

    • 示例:docker tag centos:7.0.4 mycentos:7.0.4
  4. 使用inspect命令查看详细信息

    查看进项详细信息,包括作者,适应架构,各层的数字摘要

    • 示例:docker inspect mysql:5.0.4

    它返回的是个JSON数据格式,可以查看指定字段

    • 示例:docker inspect -f {{".Architecture"}} mysql:5.0.4
  5. 使用history查看镜像各层信息

    示例:docker history mysql:5.0.4

  6. 搜索镜像

    search命令可以搜索Docker Hub上面的镜像

    • 重要参数:

      • --filter filter 过滤输出内容
      • limit int 限制条数
    • 示例:

      • 搜索官方提供的带Nginx关键字的镜像

        docker search --filter=is-official=true nginx

      • 搜索所有收藏数超过 4 的关键词包括 tensorflow 的镜像

        docker search --filter=stars=4 tensorflow

  7. 删除清理镜像

    1. 使用标签删除镜像

      docker rmi [params] params可以是标签或ID

      重要参数:

      • -f :强行删除容器,即使有容器依赖它
      • -no-prune:不要清理未带标签的父镜像

      示例:docker rmi mysql:5.0.4

    2. 使用镜像ID删除镜像

      当使用ID来删除镜像时,会先删除所有指向该ID的标签,再删除镜像文件本身,如果有该镜像存在正在运行的容器时,镜像文件默认不能删除。但可以使用-f强行删除

      示例:docker rmi Bflbd2lbd25c

    3. 使用docker一段时间后,系统可能会遗留一些临时镜像文件,使用使用docker image prune命令来清理

      重要参数:

      • -a :删除所有无用镜像,不光是临时镜像
      • -filter filter:只删除符合给定过滤器的镜像
      • -f:强行删除镜像,而不进行确认
  8. 创建镜像

    1. 基于已有容器创建

      就是在已存在的镜像中做些修改,然后保存为新的镜像,可以使用ID或名称来指定容器

      示例:docker [con七ainer] commi七-m "Added a new file" -a "Docker Newbee" a925cb40b3f0
      test:0.1

    2. 基于本地模板导入

    3. 基于DockerFile创建

  9. 导出和载入镜像

    1. 导出镜像为本地文件

      docker save -o ubuntu_18.04.tar ubuntu:18.0.4

    2. 将tar文件再导入镜像库

      docker load -i ubuntu_18.04.tar

  10. 上传镜像库

    直接docker push会将镜像推送到Docker Hub公共仓库里面,我们也可以搭建私有仓库,具体参考:docker 从公共仓库拉取,并上传到私有仓库 - casion - CSDN博客,将镜像推送到私有仓库中。在没网的情况下,我们可以使用save,和load来传递镜像文件。

上一篇下一篇

猜你喜欢

热点阅读