镜像提供容器运行时所需要的程序,资源、配置文件等,是一个特殊的文件系统。是容器运行的基础。镜像是多层文件系统组成的,是一个分层存储的架构,在镜像的构建中,会一层层的构建,每一层构建完成就不会发生改变,后一层的改变只会在自己这一层发生改变。删除前一层的文件操作,实际上不会删除前一层的文件,而是仅仅在该层将文件标记为删除,实际上还存储在前一层。因此在镜像的构建过程中,只尽量的添加该层需要的文件,任何和该层无关的文件要清理。
 
镜像使用命令:
(1)镜像拉取
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
docker镜像仓库地址,地址格式<域名/IP>:端口号,默认地址是 Docker Hub
仓库名称:<用户名>/<软件名> ,对于docker hub,没给出用户名。默认是library,即官方镜像
docker pull ubuntu:16.04

(2)运行镜像

运行镜像,是以一个镜像为基础启动一个容器。

docker run  [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]

docker run -it --rm ubuntu:16.04
-i 交互式操作
-t 伪终端
-rm 容器退出时立即删除,默认是不删除
 
(3)列出镜像
docker image ls

  虚悬镜像:是一种特殊的镜像,没有仓库名,没有标签,均为<none> ,这种镜像是因为镜像维护,新旧镜像同名的话,旧镜像名会被取消,这类无标签的镜像就是虚悬镜像(dangling image)。

列出虚悬镜像命令:docker image ls -f dangling=true

这种镜像是没有意义的,可以随意删除。删除命令:docker image prune

  中间层镜像:为了加速镜像构建、 重复利用资源, Docker 会利用 中间层镜像。 所以在使用一段时间后,可能会看到一些依赖的中间层镜像。默认docker image ls 列表中只会显示顶层镜像, 如果希望显示包括中间层镜像在内的所有镜像的话, 需要加 -a 参数。

命令 : docker image ls -a

(4)删除本地镜像
docker image rm [选项] [镜像ID/镜像名称/镜像摘要]
docker image rm nginx:v2
docker 镜像的删除有 untagged 和 delete 行为
首先是会按照要求取消镜像的tag,但是如果一个镜像有多个标签tag,如果只是删除了指定的标签,镜像还有其他标签,那么不会发生删除delete行为,只是取消了标签。当镜像所有的标签都取消了,才会触发删除行为。因为镜像是多层存储结构,再删除的时候,会从最上层向底层依次进行判断删除,当其他镜像依赖于该镜像的某一层,依旧不会触发删除行为。所以可能会看到删除的层数和docker pull时的层数不一样。
 
容器的运行时建立在镜像基础之上的,如果某个镜像的容器还存在,即使没有运行,该镜像也不能删除。
删除一个还有容器的镜像会报类似这样的错:Error response from daemon: conflict: unable to remove repository reference "nginx:v2" (must force) - container aa59eab5cc29 is using its referenced image 97d1bffd8e7f
 
 

<Docker学习>3. docker镜像命令使用的更多相关文章

  1. Docker学习之Docker镜像基本使用

    Docker学习之Docker镜像基本使用 获取镜像 命令格式:docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] 例如: docker pull ...

  2. Docker学习总结之Run命令介绍

    Docker学习总结之Run命令介绍 本文由Vikings(http://www.cnblogs.com/vikings-blog/) 原创,转载请标明.谢谢! 在使用Docker时,执行最多的命令某 ...

  3. Docker学习笔记 — Docker私有仓库搭建

    Docker学习笔记 — Docker私有仓库搭建   目录(?)[-] 环境准备 搭建私有仓库 测试 管理仓库中的镜像 查询 删除 Registry V2   和Mavan的管理一样,Dockers ...

  4. Docker学习之Docker容器基本使用

    Docker学习之Docker容器基本使用 新建容器并启动 命令格式:docker run --options repository:tag 后台运行 命令格式:-d 已存在的容器相关操作 启动:do ...

  5. docker学习笔记2--对镜像/容器的命令操作

    Docker启动一个Centos镜像 我们下载完成一个Centos镜像之后,开始启动 docker run -d -i -t <imageID> /bin/bash 这样就能启动一个一直停 ...

  6. docker学习笔记-常用镜像相关命令

    docker images # 1.使用 [root@iZbp13qr3mm4ucsjumrlgqZ ~]# docker images REPOSITORY TAG IMAGE ID CREATED ...

  7. Docker 最常用的镜像命令和容器命令

    本文列出了 Docker 使用过程中最常用的镜像命令和容器命令,以及教大家如何操作容器数据卷,实现容器数据的备份.熟练练习这些命令以后,再来一些简单的应用部署练习,大家就可以学习 Docker 的镜像 ...

  8. docker学习之二镜像创建

    继上一篇docker入门之后写一点使用的经验. 通过命令:docker run -it REPOSITORY或IMAGE ID   注:-it后面跟的字段可以通过下面指令获得 创建运行的容器,会进入一 ...

  9. Docker学习笔记之镜像与容器

    0x00 概述 镜像和容器作为 Docker 里最基础的概念,我们很有必要了解 Docker 对它们的很多定义以及其他与它们有关的知识.在这一小节里,我们就专门针对镜像与容器两个概念展开,细致的梳理与 ...

随机推荐

  1. Spring-cloud学习线路

    学习本学习路线学习完,大家将会对微服务.Spring Cloud.Docker.Kubernetes有一个系统.全面的认识.通过学习,将能掌握相关的知识体系,并能够投入到项目实战中去. 本学习路线采用 ...

  2. 从0到1构建适配不同端(微信小程序、H5、React-Native 等)的taro + dva应用

    从0到1构建适配不同端(微信小程序.H5.React-Native 等)的taro + dva应用 写在前面 Taro 是一套遵循 React 语法规范的 多端开发 解决方案.现如今市面上端的形态多种 ...

  3. vue复习

    vue 复习   options的根属性 el:目的地(srting || DOM元素) template 模板 data 是一个函数 , return一个对象   对象中的key, 可以直接在页面中 ...

  4. Chrome浏览器安装vue-devtools插件

    插件功能:方便在浏览器调试vue代码 插件git地址:https://github.com/vuejs/vue-devtools 因为chrome要FQ,打不开,所以不能直接进去安装拓展程序,只能选择 ...

  5. redhat7.3忘记root密码后如何重置root密码

    redhat7系如果忘记root密码,重置密码方法与redhat6系不同! 1.开机启动系统,在grub选择启动内核项时 按‘e’进入编辑模式 2.这时看到的参数并不全,要按上下键滚动显示, 3.在l ...

  6. 力不从心 Leetcode(ugly number heap) 263, 264,313

    Leetcode ugly number set (3 now) new ugly number is generated by multiplying a prime with previous g ...

  7. Hash模板

    ;//一般为靠近总数的素数 struct Hashtable { int x;//hash存的值 Hashtable * next; Hashtable() { next = ; } }; Hasht ...

  8. 有一个form,包含两个text,和两个按钮,当用户按第一个按扭时把数据提交到url1,按第二个按钮提交到url2,怎么实现呀?

    <form name="form1" method="post" action=""> <input type=" ...

  9. vuejs给组件绑定原生事件

    给组件绑定事件,该事件是自定义的事件 <div id='root'> <child @click='handleClick'></child> </div&g ...

  10. BZOJ 3233: [Ahoi2013]找硬币

    BZOJ 3233: [Ahoi2013]找硬币 标签(空格分隔): OI-BZOJ OI-DP Time Limit: 10 Sec Memory Limit: 64 MB Description ...