Docker Image (镜像) 常见命令

Docker Image (镜像) 常用命令

docker images

  • 功能:列出本地所有的镜像。如果镜像 ID 相同,但是 Tag 标签不同,也会被当作不同的条目被列出来。

  • 语法:

    docker images [options] [REPOSITORY[:TAG]] 
    
  • 别名:

    docker image ls    # 这个命令属于是镜像的命令,所以说会有一个 image 的标识哈
    docker image list  # 之后我们学习到的容器的命令,就会有一个 container 的标识!
    
  • 参数:

    • -a:列出本地的所有镜像,他只会显示顶级的镜像层,会过滤掉中间的镜像层。Docker 镜像是分层的,中间镜像层的存在可以 提高重用性,减少磁盘用量,加速 docker 镜像的构建 ,默认这些中间层是不显示的,后续我们会讲到显示这些中间层镜像的命令。
    • –digests:显示镜像的摘要信息。
    • -f–fliter:显示满足条件的所有镜像。
    • –format:指定返回值的模板文件。
    • –no-trunc:显示完整的镜像信息,不截断输出。
    • -q:只显示镜像的 ID。
  • 演示:

    如下图:我们使用 docker images -a 命令列出了本地的所有镜像,我们能看到镜像的名字,镜像的 Tag,镜像的 IMAGE ID,镜像创建的时间,以及镜像的大小哈!

    img


    如下图:我们使用 docker images --digests 就能看到我们在拉取镜像时,可能会用到的 DIGESTS 值。

    img


    如下图:我们使用 docker images --format json 就可以将输出的结果格式化成 json 的格式。具体格式化出来的格式支持自定义,大家可以去官网学习!

    img


如下图:我们使用 docker images -q 命令,就只能看到镜像的 ID,不能毫无用处,只能说一点用没有。奥,不对,在删除镜像的时候可能会用到。

img

docker tag

  • 功能:创建引用 SOURCE_IMAGE 的标签 TARGET_IMAGE,就相当于取别名,在使用 docker pull 命令的时候就需要使用 docker tag 给镜像取别名,然后 pull 到指定的仓库。

  • 语法:

    docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
    
  • 别名:

    docker image tag
    
  • 演示:

    如下图:我们使用 docker tag centos:centos7centos:centos7 这个镜像取别名,然后就会在本地创建引用 SOURCE_IMAGE 的镜像,因为他们的 IMAGE ID 都是一样的。

    当然我们使用 docker tag IMAGE_ID 也可以,docker tag eeb6ee3f44bd centos:v5

    img

docker image inspect

  • 功能:列出一个或者多个镜像的详细信息。

  • 语法:

    docker image inspect [OPTIONS] IMAGE [IMAGE ...] 
    
  • 参数:

    • -f–format :以指定格式输出。
  • 演示:

    如下图:我们使用 docker iamge inspect 查看一个镜像的详细信息,我们能看到 Tag,DIGESTS,创建时间等,可以看到有一个 Layers,它显示镜像的所有层,构成了整个镜像的文件系统,是镜像中实际存在的层。可以对比等会讲的 docker history 命令。

    img

docker history

  • 功能:显示镜像的历史。

  • 语法:

    docker history [OPTIONS] IMAGE
    
  • 别名

    docker image history
    
  • 参数:

    • -H–human :以人易读的方式显示大小和日期。默认应该是带了这个选项的。
    • –no-trunc :显示全部信息,不截断。
    • -q–quiet :只显示镜像 ID。
  • 演示:

    如下图:我们使用 docker history nginx:1.25.4 查看 nginx 这个镜像的历史。我们看到结果也显示出来了分层信息。这里的分层是什么呢?它显示的是镜像的构建历史,它记录了构建镜像时执行的每个步骤和创建的层。这些步骤通常对应于 Dockerfile 中的指令,例如 RUNCOPYADD 等。history 命令主要关注于这些构建步骤,而不是镜像中的每一个物理层。此外,Dockerfile 中的某些指令可能会创建多个内部层,但这些内部层在最终镜像中可能被合并为一个层,这会导致 docker image historydocker image inspect 看到的层数不同。

    img

docker pull

参考镜像仓库的命令。

docker push

参考镜像仓库的命令。

docker rmi

  • 功能:删除一个或者多个镜像。

  • 语法:

    docker rmi [OPTIONS] IMAGE [IMAGE ...]
    
  • 别名:

    docker image rm
    docker image remove
    
  • 参数:

    • -f :强制删除镜像。正在运行的容器镜像是无法删除的,除非使用 -f 选项。
  • 演示:

    如下图:在我的本地镜像中,有多个 IMAGE ID 为 eeb6ee3f44bd 的镜像标签,当 docker rmi 的不是最后的那个标签,只会进行 Untagged 的操作,只有当删除的是最后一个标签才会把这个镜像从本地删除。

    img


如果我们使用 docker rmi IMAGE ID 删除镜像的时候,如果这个镜像被多个 Tag 关联,是不能直接删除这个镜像的!除非加上 -f 选项,这会将所有 Tag 解除关联,并删除镜像!

img


如下图:我们无法删除正在运行的容器镜像。但是可以加上 -f 选项,删除已经停止的容器镜像。

img

docker save

  • 功能:将一个或者多个镜像保存成为 tar 归档文件。

  • 语法:

    docker save [OPTIONS] IMAGE [IMAGE ...]
    
  • 别名

    docker image save
    
  • 参数:

    • -o–output:输出到的目标文件。
  • 演示:

    如下图:我们将 nginx 这个镜像 保存成为 tar 文件。我们将来就可以使用 docker load 命令将这个文件导出为镜像。这两个命令常用于由于环境限制无法在镜像网站拉取镜像的时候。

    img

docker load

  • 功能:从 tar 归档文件中加载镜像。也可以从标准输入 STDIN 中加载!

  • 语法:

    docker load [OPTIONS]
    
  • 别名:

    docker image load
    
  • 参数:

    • –input-i :指定导入的文件,加上该选项就会替代 STDIN。
    • –quiet-q:精简输出信息。
  • 演示:

    如下图:原来本地是没有 nginx 这个镜像的,通过 docker load 从刚才 docker save 形成的 tar 文件中加载镜像!

    img


从标准输入加载镜像可以这么写:

docker load < test_docker_save.tar.gz

docker image prune

  • 功能:删除没有使用过的镜像。

  • 语法:

    docker image prune [OPTINONS]
    
  • 参数:

    • -a-all :删除全部不使用的镜像。
    • –filter :指定过滤条件。
    • -f–force :不提示是否删除。
  • 演示:

    如下图:我的本地有两个镜像:nginx 和 busybox,其中 busybox 镜像被一个容器引用!然后我们通过 docker image prune -a 删除所有未被使用的镜像!因为我们没有加上 -f 选项,就会让我们确认是否删除,输入 y 之后成功将未被使用的 nginx 镜像删除啦!

    img

docker import

这个命令暂时没法讲,我们在讲解 docker 容器命令的时候需要和 docker export 命令一起讲。

docker build

这个命令也没法讲,我们在讲镜像制作的时候讲解!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/814096.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何对图像进行聚类

文章来源&#xff1a;https://medium.com/voxel51/how-to-cluster-images-6e09bdff7361 2024 年 4 月 10 日 使用 FiftyOne、Scikit-learn和特征嵌入 在 2024 年深度学习的计算密集型环境中&#xff0c;集群一词最常出现在讨论 GPU 集群时--高度优化的矩阵乘法机器的大规模集…

Mac下安装NVM,NVM安装Node(附带NPM)

1、理解NVM、node、NPM 什么是NVM&#xff1f; NVM: Node.js Version Manager&#xff0c;用来管理 node 的版本。 什么是 Node.js? Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js使用了一个事件驱动、非阻塞式I/O的模型&#xff08; Node.js的特性&…

海洋信息管理系统:守护蓝色星球,促进海洋经济新发展

海洋&#xff0c;覆盖地球表面超过七成的广阔水域&#xff0c;是生命之源&#xff0c;也是经济发展的重要空间。然而&#xff0c;随着人类活动的增加&#xff0c;海洋生态环境面临严峻挑战&#xff0c;海洋资源的可持续利用成为全球关注的焦点。在这样的背景下&#xff0c;构建…

数字IC/FPGA——亚稳态及跨时钟域

什么是亚稳态亚稳态会造成什么平均故障间隔时间如何解决亚稳态同步时钟和异步时钟单bit电平信号如何跨时钟域单bit脉冲信号如何跨时钟域多bit信号如何跨时钟域 目录 一、亚稳态1.基本概念2.危害3.平均故障时间4.解决亚稳态的方法 二、跨时钟域1.同步电路和异步电路&#xff08;…

Redis 是如何实现消息队列的?

队列的三个需求 消息队列在存取消息时&#xff0c;必须要满足三个需求&#xff0c;分别是消息保序、处理重复的消息和保证消息可靠性 需求一&#xff1a;消息保序。消费者仍然需要按照生产者发送消息的顺序来处理消息&#xff0c;避免后发送的消息被先处理了 需求二&#xf…

链表linked list: 将新节点链接到链表的末尾

// 在链表中插入新节点 // 这段代码定义了一个名为 insert 的函数&#xff0c;用于在链表中插入新节点。让我解释一下这段代码的逻辑&#xff1a; // 函数接受两个参数&#xff1a;指向链表头节点的引用 head 和要插入的新节点的值 value。 // 首先&#xff0c;它创建了一个新的…

RNN知识体系构筑:详尽阐述其理论基础、技术架构及其在处理序列数据挑战中的创新应用

一、为什么需要RNN 尽管神经网络被视为一种强大且理论上能够近似任何连续函数的模型&#xff0c;尤其当训练数据充足时&#xff0c;它们能够在输入空间中的某个点( x )映射到输出空间的特定值( y )&#xff0c;然而&#xff0c;这并不能完全解释为何在众多应用场景中&#xff…

牛客2024【牛客赛文X】春招冲刺ONT61 每日温度【hard 单调栈 Java、Go、PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/1f54e163e6944cc7b8759cc09e9c78d8 思路 单调栈最直接的应用就是获取数组中每个位置i,i的左边第一个比i大或者小的位置/数以及,i的右边第一个比i大或者小的位置/数不懂的同学看这里https://blog.csdn.net/Borsl…

String类中常见面试题

1.string类属于基本类型吗&#xff1f; string类不是基本类型&#xff1b;它属于引用数据类型 2.操作字符串的类有哪些?有什么区别&#xff1f; 有三种&#xff1a;string,stringBuilder,stringBuffer 区别&#xff1a; String:不可变类&#xff0c;字符串一旦被创建就不能…

Unity打包出来的apk安装时提示应用程式与手机不兼容,无法安装应用程式

1、遇到的问题 * 2、解决办法 这是因为你在Unity中导出来的apk手机安装包是32位的&#xff0c;才导致上述问题发生&#xff0c;要解决这个办法&#xff0c;需要在Unity中导出64位的手机安装包。 32位跟64位的区别&#xff0c;以及如何区分打出来的手机安装包是否是32位或者是…

C++11 新特性:tuple 元组

std::tuple是 C11 中引入的一个非常强大的类型&#xff0c;它允许将多个类型不同的值&#xff0c;组合成单一对象。 std::tuple非常适合用于那些需要返回多个值的场景&#xff0c;而且它的灵活性和通用性使得其成为现代 C 编程中不可或缺的一部分。下面&#xff0c;我们将探讨…

腐蚀Rust 服务端搭建架设个人社区服务器Windows教程

腐蚀Rust 服务端搭建架设个人社区服务器Windows教程 大家好我是艾西&#xff0c;一个做服务器租用的网络架构师也是游戏热爱者。最近在steam发现rust腐蚀自建的服务器以及玩家还是非常多的&#xff0c;那么作为服务器供应商对这商机肯定是不会放过的哈哈哈&#xff01; 艾西这…

Day:004(4) | Python爬虫:高效数据抓取的编程技术(数据解析)

XPath工具 浏览器-元素-CtrlF 浏览器-控制台- $x(表达式) Xpath helper (安装包需要科学上网) 问题 使用离线安装包 出现 程序包无效 解决方案 使用修改安装包的后缀名为 rar&#xff0c;解压文件到一个文件夹&#xff0c;再用 加载文件夹的方式安装即可 安装 python若使用…

2024年认证杯SPSSPRO杯数学建模D题(第一阶段)AI绘画带来的挑战全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 D题 AI绘画带来的挑战 原题再现&#xff1a; 2023 年开年&#xff0c;ChatGPT 作为一款聊天型 AI 工具&#xff0c;成为了超越疫情的热门词条&#xff1b;而在 AI 的另一个分支——绘图领域&#xff0c;一款名为 Midjourney&#xff08;MJ&…

【Apache2】彻底删除 Apache2 服务器

要彻底删除 Apache2 服务器&#xff0c;需要卸载 Apache2 软件包并删除其配置文件和数据文件。在 Ubuntu 上&#xff0c;可以按照以下步骤来完成&#xff1a; 停止 Apache2 服务&#xff1a; sudo systemctl stop apache2卸载 Apache2 软件包&#xff1a; sudo apt-get purge a…

JavaWeb--前端--01HTML和CSS

文章目录 1 前端开发介绍2 开发工具3 文档查阅4 VSCode的插件 1 前端开发介绍 Web标准也称为网页标准&#xff0c;由一系列的标准组成&#xff0c;大部分由W3C&#xff08; World Wide Web Consortium&#xff0c;万维网联盟&#xff09;负责制定。由三个组成部分&#xff1a;…

2024年认证杯数学建模挑战赛C题全解析

2024年认证杯C题的已经完成啦&#xff0c;包括参考论文&#xff0c;模型代码&#xff0c;分享给大家&#xff5e; 问题分析 对于这些问题&#xff0c;我们首先需要确定影响日光辐射降低效应的关键参数&#xff0c;例如海盐气溶胶的浓度、粒子大小、分布以及喷洒高度和范围。同…

使用Spring Cloud构建微服务时的一些经验

在使用Spring Cloud构建微服务的过程中&#xff0c;积累了大量的实践经验&#xff0c;也遇到了一些挑战。以下是对使用Spring Cloud进行微服务开发的经验和观察&#xff1a; 1. 服务治理与发现 Spring Cloud Eureka或Consul提供了服务治理和发现的功能&#xff0c;使得微服务…

再写-全景拼接

全景拼接 1. 将读取进行灰度转化&#xff0c;并且输出图像&#xff0c;关键点和计算描述 import cv2 import numpy as np# 将读取进行灰度转化&#xff0c;并且输出图像&#xff0c;关键点和计算描述 image_left cv2.imread("C:\\Users\\HONOR\\Desktop\\image\\pinjie…

机器人坐标系转换之从世界坐标系到局部坐标系

三角函数实现 下面是代码c和python实现&#xff1a; #include <iostream> #include <cmath>struct Point {double x;double y; };class RobotCoordinateTransform { private:Point origin; // 局部坐标系的原点在世界坐标系中的坐标public:RobotCoordinateTransfo…