• 4. docker镜像的概念、管理(查看、下载、删除)


    镜像的概念

    镜像是一个包含程序运行必要依赖环境和代码的只读文件,它采用分层的文件系统,将每一次改变以读写层的形式增加到原来的只读文件上。镜像是容器运行的基石。

    • 下图展示的是Docker镜像的系统结构。其中,镜像的最底层必须是一个称为启动文件系统(bootfs)的镜像,用户不会与这一层直接打交道。bootfs的上层镜像就是我们熟知的根镜像。

    这里写图片描述

    • 镜像的本质是磁盘上一系列文件的集合。

    这里写图片描述

    查看

    docker images:可以列出本机上的所有镜像:

    这里写图片描述

    • REPOSITORY:仓库名称。
      • [namespace/centos]:由命名空间和实际的仓库名称组成。当你再Docker Hub上注册一个账户时,账户名自动成为你的命名空间,该命名空间是用来区分Docke Hub上注册的不同用户或者组织的。
      • [centos]:只有仓库名。属于顶级命名空间,只用于官方镜像。
      • [dl.dockerpool.com:5000centos:7]:指定URL路径的方式。适用于自己搭建的Hub或者第三方Hub上获取镜像。
    • TAG:用于区分同一个仓库中的不同镜像。
    • IMAGE ID:镜像的唯一标识:64位HashID。
    • CREATED:镜像 的创建时间。
    • SIZE:镜像所占用的虚拟大小,该大小包含了所有共享文件的大小。
    docker images ce*:通配符,找到符合条件的一系列镜像。

    这里写图片描述

    docker inspect [NAME]/[CONTAINER ID]:images只会列出镜像的基本信息,详细信息可以通过inspect命令查看:

    这里写图片描述

    下载

    下载之前推荐使用加速器

    阿里云的镜像加速大家参考阿里给的方案https://dev.aliyun.com/search.html,不过我试了几次发现貌似阿里给的方案有点问题(我只试了centos7),所以阿里的方案大家自定参考,我就不说了, 我说下我配置阿里云镜像成功的方法。

    • 首先要在上面的连接中注册阿里云开发者平台账号,我们在加速器选项中得到一个各自专属的加速器地址。

    这里写图片描述

    配置阿里云的docker镜像库:在阿里云开通容器镜像服务拿到加速地址在执行以下命令:

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://{自已的编码}.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    docker run:命令运行时会在本地寻找镜像,找不到的时候就会去Docker Hub上面搜索并下载后运行。

    docker search [NAME]:下载之前可以通过search命令查找搜索符合的镜像:

    这里写图片描述

    • NAME:镜像名称。
    • DESCRIPTION:镜像的简要描述。
    • STARS:用户对镜像的评分。
    • OFFICIAL:是否为官方镜像。
    • AUTOMATED:是否使用了自动构建。
    docker pull [NAME]:可以预先将镜像拉到本地。镜像名必须完整地包含命名空间和仓库名。如果一个仓库中存在多个镜像,还必须制定TAG,否则使用默认TAG:latest。

    这里写图片描述

    删除

    docker rmi [NAME]/[CONTAINER ID]对于不需要的镜像,可以使用rmi命令删除。与移除容器的命令rm相比,删除镜像的命令多了一个i,i即image的意思。
    • 删除多个:多个镜像之间使用空格隔开。
    • -f:强制删除,大部分删不掉的情况可能是因为这个镜像被容器依赖了,可以选择先移除容器。
    docker rm $(docker ps -a -q):如果本地有很多已经停止运行的容器,一个个删除很麻烦,可以使用下面的命令将这些容器一次性删除,这样就能减少无用容器对镜像的依赖。
    
    docker ps -a -q:用来列出所有容器的ID
  • 相关阅读:
    算法 在一个递增的二维数组中查找一个数
    java web----网络编程基础
    java----集合(Map)
    java----集合(List、set)
    java----数组
    java面试----1
    java----NIO
    java----commons-io
    java----文件操作
    爬虫----爬取答案
  • 原文地址:https://www.cnblogs.com/bmjoker/p/9060915.html
Copyright © 2020-2023  润新知