镜像提供容器运行时所需要的程序,资源、配置文件等,是一个特殊的文件系统。是容器运行的基础。镜像是多层文件系统组成的,是一个分层存储的架构,在镜像的构建中,会一层层的构建,每一层构建完成就不会发生改变,后一层的改变只会在自己这一层发生改变。删除前一层的文件操作,实际上不会删除前一层的文件,而是仅仅在该层将文件标记为删除,实际上还存储在前一层。因此在镜像的构建过程中,只尽量的添加该层需要的文件,任何和该层无关的文件要清理。
 
镜像使用命令:
(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. 写英文bug的经验总结

    本文链接: https://www.cnblogs.com/hchengmx/p/10800855.html 由于工作原因,开bug的时候需要由英文开,刚开的时候比较痛苦,因为有些词汇老师用的不太准确 ...

  2. VS Code 编译器的调试工具整理

    1 debbugeer for chrome的使用 下载安装,然后配置launch.json { "name": "Chrome",//名称 "typ ...

  3. Java Exception & RTTI

    Exception Try { ... ... } catch (Exception ex) { …; throw new Throwable(ex); } catch (Throwable ex) ...

  4. 绘图之Canvas学习

    一  Canvas的用法   博客:http://blog.taorenjia.com/?p=237    1.drawCircle(float cx, float cy, float radius, ...

  5. mysql 5.6 zip安装,启动失败,1067错误

    在使用mysql5.6 zip压缩包安装mysql过程中,启动过程,老是卡在1067启动错误上,翻看网上各种解决方案,卸载干净重装,重启,都不管用. 网上各种教程都是新建 my.ini mysql 配 ...

  6. java集合框架——List

    一.List接口概述 List有个很大的特点就是可以操作角标. 下面开始介绍List接口中相对于Collection接口比较特别的方法.在Collection接口中已经介绍的方法此处就不再赘述. 1. ...

  7. 关于vim、nvim的折腾

    1 from a view of enc ·nvim必须set enc=utf8,很多基于python的插件也默认了此,这对于中文这些并不友好,然而,vim支持多字节就好的多. 因为很多项目,大家可能 ...

  8. IOS 设置定时器,执行方法

    //设置定时器(1秒后跳到一下题) [self performSelector:@selector(nextQuestion) withObject:nil afterDelay:1.0];

  9. 【BZOJ1453】[WC] Dface双面棋盘(LCT维护联通块个数)

    点此看题面 大致题意: 给你一个\(n*n\)的黑白棋盘,每次将一个格子翻转,分别求黑色连通块和白色连通块的个数. \(LCT\)动态维护图连通性 关于这一部分内容,可以参考这道例题:[BZOJ402 ...

  10. tcp 的编程例子

    https://www.cnblogs.com/ylllove/p/6852125.html