镜像的概念

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

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

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

查看

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

  • REPOSITORY:仓库名称。

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

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

下载

下载之前推荐使用加速器

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

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

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

  1. sudo mkdir -p /etc/docker
  2. sudo tee /etc/docker/daemon.json <<-'EOF'
  3. {
  4. "registry-mirrors": ["https://{自已的编码}.mirror.aliyuncs.com"]
  5. }
  6. EOF
  7. sudo systemctl daemon-reload
  8. sudo systemctl restart docker
  1. docker run:命令运行时会在本地寻找镜像,找不到的时候就会去Docker Hub上面搜索并下载后运行。
  2. docker search [NAME]:下载之前可以通过search命令查找搜索符合的镜像:

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

删除

  1. docker rmi [NAME]/[CONTAINER ID]对于不需要的镜像,可以使用rmi命令删除。与移除容器的命令rm相比,删除镜像的命令多了一个iiimage的意思。
  • 删除多个:多个镜像之间使用空格隔开。
  • -f:强制删除,大部分删不掉的情况可能是因为这个镜像被容器依赖了,可以选择先移除容器。
  1. docker rm $(docker ps -a -q):如果本地有很多已经停止运行的容器,一个个删除很麻烦,可以使用下面的命令将这些容器一次性删除,这样就能减少无用容器对镜像的依赖。
  2. docker ps -a -q:用来列出所有容器的ID

4. docker镜像的概念、管理(查看、下载、删除)的更多相关文章

  1. Docker 创建、运行、查看、删除容器

    Docker 创建.运行.查看.删除容器 Step 1: 查看docker程序是否存在, 功能是否正常. sudo docker info 若不正常请参考下文: Docker安装和程序创建 Step ...

  2. Docker 镜像与容器管理

    镜像与容器简介 Docker的大部分操作都围绕着它的三大核心概念:镜像.容器.仓库而展开.因此,准确把握这三大核心概念对于掌握Docker技术尤为重要,在docker中,我们重点关注的就是镜像和容器了 ...

  3. Docker镜像和容器管理(二)

    Docker安装 Docker镜像管理 https://hub.docker.com/ 是公共的一个Docker镜像仓库,类似GitHub一样,上面有非常多的开源项目镜像. 可以直接在命令行搜索镜像 ...

  4. docker镜像拉取、运行、删除

    1.拉取hello-world镜像并运行 docker pull hello-world 拉取hello-world镜像Using default tag: latestlatest: Pulling ...

  5. Docker学习笔记四:Docker镜像、容器管理工具shipyard

    一.拉取以下几种镜像: docker pull alpineshipyard/shipyarddocker pull swarm docker pull shipyard/shipyarddocker ...

  6. Docker 镜像-管理-导入-导出

    目录 Docker 镜像基本概念 Docker 镜像加速 Docker 镜像 常用命令 Docker 镜像的创建和导出导入 Docker 镜像基本概念 我们使用的容器都是基于镜像的,镜像是由多层组成的 ...

  7. docker镜像、容器

    第一部分:Docker镜像的基本知识 1.1 什么是Docker镜像 从整体的角度来讲,一个完整的Docker镜像可以支撑一个Docker容器的运行,在 Docker容器运行过程中主要提供文件系统视角 ...

  8. 深刻理解Docker镜像大小

    都说容器大法好,可是假设没有Docker镜像,Docker该是多无趣啊. 是否还记得第一个接触Docker的时候,你从Docker Hub下拉的那个镜像呢?在那个处女镜像的基础上.你执行了容器生涯的处 ...

  9. 你必须知道的Docker镜像仓库的搭建

    近期工作中发现用到的容器镜像越来越多(不多的时候没考虑过镜像仓库的问题),同一个容器镜像也存在多个版本,那么镜像仓库的搭建需求就涌现出来,本文就目前的几个常用镜像仓库的搭建进行介绍,我们可以根据需要选 ...

随机推荐

  1. EasyDSS高性能流媒体服务器前端重构(六)- webpack-dev-server 支持手机端访问

    很多时候,前端开发的页面,不仅要在PC端测试效果, 还要在手机端测试效果. 在开发阶段, 我们以 webpack-dev-server 来启动浏览器, 打开正在开发的页面. webpack-dev-s ...

  2. DAICO模式到底是什么?

    自从V神提出DAICO以来,已经有项目围绕DAICO模式落地,但是DAICO到底是什么呢? 所谓DAIC0,其实就是DAO+IC0. DAO是DistributedAutonomous Organiz ...

  3. CF(439E - Devu and Birthday Celebration)莫比乌斯容斥

    题意:将n个糖果插入f-1个挡板分成f分(a1,a2,a3...af). 问有多少种分法能够使得gcd(a1,a2,a3...af)=1; 解法.莫比乌斯容斥,首先按1为单位分,这时候有C(n-1,f ...

  4. 2016WWDC详解

    今年苹果WWDC 2016上把所有系统都更新了个遍,watchOS.tvOS.macOS 和 iOS 都或多或少带来了新功能. 本文的主角是更新最多的 iOS 10,第一时间在一部 iPhone 6s ...

  5. VLAN虚拟局域网技术(二)-计算机网络

    本文主要知识来源于学校课程,部分知识来自于H3C及思科中国公司网页技术手册,未经许可,禁止转载.如需转载,请联系作者并注明出处. 本节主要是总结一些思科的VLAN组中的私有协议:DTP和VTP. 1. ...

  6. python之tkinter_1

    以下内容来自:https://blog.csdn.net/wangyiyan315/article/details/16361065 from tkinter import * # 导入tkinter ...

  7. BZOJ 1607 [Usaco2008 Dec]Patting Heads 轻拍牛头:统计 + 筛法【调和级数】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1607 题意: 给你n个数,问你除a[i]之外,有多少个数是a[i]的约数. 题解: ans ...

  8. javascript(8)

      给对象添加方法还有两种方式: 第一种: function 类名(){ this.属性; } var 对象名=new 类名(); function 函数名(){ //执行 } 对象名.属性名=函数名 ...

  9. PHP ServerPush (推送) 技术的探讨【转】

    随着人们对Web即时应用需求的不断上升,Server Push(推送)技术在聊天.消息提醒尤其是社交网络等方面开始兴起,成为实时应用的数据流核心.这篇日志试图探讨的便是各种适合于PHP的Push的实现 ...

  10. insert …select …带来的死锁问题

    mysql中 insert …select …带来的问题 当使用insert...select...进行记录的插入时,如果select的表是innodb类型的,不论insert的表是什么类型的表,都会 ...