Docker-Image

Docker

  • Docker 镜像是什么
  • 为什么需要镜像
  • 镜像命令
    • 总览
    • docker images
    • docker tag
    • docker pull
    • docker push
    • docker rmi
    • docker save
    • docker load
    • docker image inspect
    • docker history
    • docker import
    • docker image prune
    • docker build

Docker 镜像是什么

  • Docker image 本质上是一个 read-only 只读文件, 这个文件包含了文件系统、源码、库文件、依赖、工具等一些运行 application 所必须的文件

  • 我们可以把 Docker image 理解成一个模板, 可以通过这个模板实例化出来很多容器

  • image 里面是一层层文件系统(Union File System), 可以将几层目录挂载到一起, 形成一个虚拟文件系统. 每一层文件系统我们叫做一层 layer, 联合文件系统可以对每一层文件系统设置三种权限, 只读(readonly)、读写(readwrite)和写出(whiteout-able)

镜像相当于一个模板,可以很方便的构建出来不同的对象

🍂案例

在这里插入图片描述

为什么需要镜像

在部署应用时,通过手工或写一些脚本的方式进行部署。这样部署面临问题就是云端和本地环境一致问题。用户为每个应用打包过程比较繁琐,需要配置和修改等操作,非常费劲

然而,Docker 镜像就是为了解决这个小小的打包功能,突然一夜之间成名。那么,你可能说 Docker 镜像就是个压缩包,是的,你猜对了,它就像一个压缩包文件。它是如何解决 Paas 时代所面临的云端和本地一致性问题?很简单,它是把一个镜像制作成一个完整的操作系统所有文件和对应的目录结构,这样的压缩包是跟你本地和测试环境用的操作系统一摸一样

Docker 最大的贡献就是定义了容器镜像的分层的存储格式,Docker 镜像技术的基础是联合文件系统(UnionFS),其文件系统是分层的。这样既可以充分利用共享层,又可以减少存储空间占用。Docker 镜像提供了一种打包应用程序和预配置服务器环境的便捷方式,可以很方便的将其用于个人用途或与其他 Docker 用户公开共享

镜像命令

总览

commandaliasfunction
docker imagesdocker image ls / docker image list列出本地镜像
docker tagdocker image tag给镜像打标签, 可用于推送至镜像仓库
docker pulldocker image pull从镜像仓库拉取镜像
docker pushdocker image push推送镜像到仓库
docker rmidocker image rm / docker image remove删除本地镜像
docker builddocker image build通过 dockerfile 制作镜像
docker savedocker image save将指定镜像保存成 tar 归档文件
docker loaddocker image load导入使用 docker save 命令导出的镜像
docker image inspect查看镜像详细信息
docker historydocker image history查看镜像历史
docker importdocker image import从归档文件 docker export 中创建镜像
docker image prune删除不使用的镜像

docker images

  • 功能

    列出本地镜像

  • 语法

    docker images [OPTIONS] [REPOSITORY[:TAG]]

  • 别名

    docker image ls, docker image list

  • 参数

    • -a: 列出本地所有的镜像(含中间映像层, 默认情况下, 过滤掉中间映像层)
    • --digests: 显示镜像的摘要信息
    • -f: 显示满足条件的镜像
    • --format: 指定返回值的模板文件
    • --no-trunc: 显示完整的镜像信息
    • -q: 只显示镜像 ID

🍂样例

# 列出本地全部镜像
docker images

# 列出本地镜像中 REPOSITORY 为 ubuntu 的镜像列表
docker images ubuntu

docker tag

  • 功能

    标记本地镜像, 将其归入某一仓库

  • 语法

    docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

  • 别名

    docker image tag

🍂样例

# 给 ubuntu:22.04 镜像打标签
docker tag ubuntu:22.04 myregistry.com/myubuntu:22.04

docker pull

  • 功能

    从镜像仓库中拉取或者更新指定镜像

  • 语法

    docker pull [OPTIONS] NAME[:TAG|@DIGEST]

  • 别名

    docker image pull

  • 参数

    • -a: 拉取所有 tagged 镜像
    • --disable-content-trust: 忽略镜像的校验, 默认开启

🍂样例

# 拉取 nginx:1.23.3 镜像
docker pull nginx:1.23.3

docker push

  • 功能

    将本地的镜像上传到镜像仓库, 要先登录到镜像仓库

  • 语法

    docker push [OPTIONS] NAME[:TAG]

  • 别名

    docker image push

  • 参数

    • -a: 推送所有 tagged 镜像
    • --disable-content-trust: 忽略镜像的校验, 默认开启

🍂样例

# 推送 bibubibu/busybox:v1 镜像
docker push bibubibu/busybox:v1

docker rmi

  • 功能

    删除镜像

  • 语法

    docker rmi [OPTIONS] IMAGE [IMAGE...]

  • 别名

    docker image rm, docker image remove

  • 参数

    • -f: 强制删除
    • --no-prune: 不移除该镜像的过程镜像,默认移除

🍂样例

# 推送 bibubibu/busybox:v1 镜像
docker rmi nginx:stable

docker save

  • 功能

    将指定镜像保存成 tar 归档文件

  • 语法

    docker save [OPTIONS] IMAGE [IMAGE...]

  • 别名

    docker image save

  • 参数

    • -o: 输出到的文件

🍂样例

# 将 myimage:latest 镜像保存成了 myimage.tar 文件
docker save -o myimage.tar myimage:latest

docker load

  • 功能

    导入使用 docker save 命令导出的镜像

  • 语法

    docker load [OPTIONS]

  • 别名

    docker image load

  • 参数

    • --input, -i: 指定导入的文件, 代替 STDIN
    • --quiet, -q: 精简输出信息

🍂样例

# 将 myimage.tar 文件导入到本地镜像
docker load -i myimage.tar

docker image inspect

  • 功能

    查看镜像详细信息

  • 语法

    docker image inspect [OPTIONS] IMAGE [IMAGE...]

docker inspect 会自动检查是镜像还是容器然后显示相关信息

🍂样例

# 查看镜像详细信息
docker images inspect nginx:1.23.3

docker history

  • 功能

    显示镜像历史

  • 语法

    docker history [OPTIONS] IMAGE

  • 别名

    docker image history

  • 参数

    • -H , --human: 大小和日期采用人容易读的格式展现
    • --no-trunc: 显示全部信息, 不要隔断
    • -q, --quiet: 只显示镜像 id 信息

🍂样例

# 显示 nginx:1.25.3 镜像历史
docker history -H nginx:1.25.3

docker import

  • 功能

    从归档文件中创建镜像

  • 语法

    docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

  • 别名

    docker image import

  • 参数

    • -c: 应用 docker 指令创建镜像
    • -m: 提交时的说明文字

🍂样例

# 从 my_ubuntu_v3.tar 文件中创建了一个名为 bibubibu/ubuntu:v4 的镜像
docker import my_ubuntu_v3.tar bibubibu/ubuntu:v4

docker image prune

  • 功能

    删除不使用的镜像

  • 语法

    docker image prune [OPTIONS]

  • 参数

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

🍂样例

# 删除所有没有被已有容器使用的镜像
docker image prune -a

docker build

  • 功能

    用于使用 Dockerfile 创建镜像

  • 语法

    docker build [OPTIONS] PATH | URL | -

  • 参数

    • --build-arg=[]: 设置镜像创建时的变量
    • -f: 指定要使用的 Dockerfile 路径
    • --label=[]: 设置镜像使用的元数据
    • --no-cache: 创建镜像的过程不使用缓存
    • --pull: 尝试去更新镜像的新版本
    • --quiet, -q: 安静模式, 成功后只输出镜像 ID
    • --rm: 设置镜像成功后删除中间容器
    • --tag, -t: 镜像的名字及标签, 通常为 name:tag 或者 name 格式; 可以在一次构建中为一个镜像设置多个标签
    • --network: 默认 default. 在构建期间设置 RUN 指令的网络模式

🍂样例

# 使用 Dockerfile 创建了一个名为 myimage:tag 的镜像
docker build -t myimage:tag

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一文全面了解 wxWidgets 程序国际化(i18n)处理

尽管应用程序的国际化(简称i18n)远不止是将文本消息翻译成另一种语言的消息——日期、时间和货币格式也需要更改,一些语言是从左到右书写,而另一些是从右到左书写,字符编码可能不同,以及许多其他可能需要更…

一文带你弄懂JVM与JAVA体系结构

文章目录 1.JVM 与 Java 体系结构1.1. 前言1.2. 一些参考书目1.3. Java 及 JVM 简介1.4. Java 发展的重大事件1.5. 虚拟机与 Java 虚拟机1.6. JVM 的整体结构1.7. Java 代码执行流程1.8. JVM 的架构模型1.9. JVM 的生命周期 1.JVM 与 Java 体系结构 1.1. 前言 作为 Java 工程…

NLP 笔记:Latent Dirichlet Allocation (介绍篇)

1 问题介绍 假设我们有一堆新闻,每个新闻都有≥1个主题 我们现在只知道新闻的内容,我们希望一个算法,帮我们把这些新闻分类成主题人类可以根据每个每个文章里面的单词判断主题,那计算机怎么做呢? ——>LDA(Latent D…

大小端是什么?怎么判断?(百度笔试题)

目录 一、前言二、什么是大小端&#xff1f;三、为什么有大小端之分呢&#xff1f;四、判断机器是大端还是小端--百度笔试题 一、前言 先看一段代码&#xff1a; #include<stdio.h> int main() {int n 0x11223344;return 0; }二、什么是大小端&#xff1f; 其实超过⼀…

【JavaSE】抽象类和接口

目录 前言 1. 抽象类 1.1 认识抽象类 1.2 抽象类的特征 1.3 抽象类的作用 2. 接口 2.1 接口的概念 2.2 接口的语法 2.3 接口的使用 2.4 接口的特性 2.5 接口的好处 2.6 接口之间的继承 结语 前言 今天我们来讲Java中的抽象类和接口&#xff0c;它们在面向对象中发…

前端应用开发实验:条件渲染和循环渲染

目录 实验目的相关知识点实验内容图片的隐藏和显示代码实现效果 电影票房排序代码实现效果 代办事项记录代码实现效果 实验目的 (1)熟练掌握v-on 指令的用法&#xff0c;学会使用v-on 指令监听DOM元素的事件&#xff0c;并通过该事件触发调用事件处理程序。 (2)掌握v-on指令修…

大学理科用什么软件搜题?推荐5个搜题软件和学习工具 #其他#知识分享#经验分享

大学生的学习生活离不开一些实用的工具&#xff0c;它们能够帮助我们更高效地学习和管理时间。 1.千鸟搜题 这是一个公众号 这是一个老公众号了&#xff0c;我身边的很多朋友都在用&#xff0c;支持超新星、学习强国、知到、智慧树和各类专业网课题目。 下方附上一些测试的试…

Axure案例分享—折叠面板(附下载地址)

今天和大家分享的Axure案例是折叠面板 折叠面板是移动端APP中常见的组件之一&#xff0c;有时候也称之为手风琴。咱们先看下Axure画出的折叠面板原型效果&#xff0c;然后再对该组件进行详细讲解。 一、功能介绍 折叠或展开多个面板内容&#xff0c;默认为展开一项内容&…

【JS】闭包的漏洞

下面这段代码可以实现&#xff1a;通过立即执行函数o返回对象中的get方法&#xff0c;通过参数key得到fn函数内部对象obj中的值。 var fn function () {var obj {a: 1,b: 2}return {get: function (key) {return obj[key]}} }() console.log(fn.get(b)); // 2这是一个典型的…

小红书扫码登录分析与python实现

文章目录 1. 写在前面2. 接口分析3. 代码实现 【&#x1f3e0;作者主页】&#xff1a;吴秋霖 【&#x1f4bc;作者介绍】&#xff1a;擅长爬虫与JS加密逆向分析&#xff01;Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Python…

基于ssm电子竞技管理平台的设计与实现论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本电子竞技管理平台就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息…

MySQL、Oracle的时间类型字段自动更新:insert插入、update更新时,自动更新时间戳。设置自增主键id,oracle创建自增id序列和触发器

1. MySQL 支持设置自增id的字段类型&#xff1a;int、bigint、double等数值类型&#xff0c;一般用int、bigint支持设置自动更新时间的字段类型&#xff1a;datetime、timestamp下面sql中的now()函数可以用current_timestamp()替代 1.1. 不指定秒精度 drop table if exists …

135. 分发糖果(力扣LeetCode)

文章目录 135. 分发糖果题目描述贪心算法代码如下 总结 135. 分发糖果 题目描述 n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求&#xff0c;给这些孩子分发糖果&#xff1a; 每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩…

Leetcode - 周赛389

目录 一&#xff0c;3083. 字符串及其反转中是否存在同一子字符串 二&#xff0c;3084. 统计以给定字符开头和结尾的子字符串总数 三&#xff0c;3085. 成为 K 特殊字符串需要删除的最少字符数 四&#xff0c;3086. 拾起 K 个 1 需要的最少行动次数 一&#xff0c;3083. 字符…

Java的三大特性之一——继承

前言 http://t.csdnimg.cn/uibg3 在上一篇中我们已经讲解过封装&#xff0c;这里就主要讲解继承与多态 继承 1.为什么需要继承 Java中使用类对现实世界中实体来进行描述&#xff0c;类经过实例化之后的产物对象&#xff0c;则可以用来表示现实中的实体&#xff0c;但是现实…

centos7安装jdk详细步骤(yum安装与手动安装)

centos7安装jdk详细步骤&#xff08;yum安装与手动安装&#xff09; 一、使用yum安装1. 准备工作2. 检查系统是否自带jdk3. 安装jdk 二、手动安装jdk1. 下载上传jdk2. 安装jdk3. 配置环境变量 一、使用yum安装 1. 准备工作 如果你的机器可以联网可以使用此方法 ping www.baidu…

2、Java虚拟机之类的生命周期-连接(验证、准备、解析)

一、类的生命周期 连接阶段之验证 连接阶段的第一个环节是验证&#xff0c;验证的主要目的是检测Java字节码文件是否遵守了<Java虚拟机规范>中的约束。这个阶段一般是不需要程序员进行处理。 主要包含如下四个部分,具体详见<<Java虚拟机规范>>: 1、文件格…

mysql+keepalived实现对mysql的高可用

mysql数据库出现问题 133 解决方案: 在133mysql终端 实行如下命令 mysqlkeepalived实现对mysql的高可用 132 keepalived配置如下 133 keepalived配置如下 132重启keepalived服务 132关闭mysqld服务&#xff0c;vip不见了 133收到vip 132重启mysqld服务和keepalived服务,vip…

C语言——程序拷贝文件

问题如下&#xff1a; 写一个程序拷贝文件&#xff1a; 使用所学文件操作&#xff0c;在当前目录下放一个文件data.txt&#xff0c;写一个程序&#xff0c;将data.txt文件拷贝一份&#xff0c;生成data_copy.txt文件。 基本思路&#xff1a; 打开文件data.txt&#xff0c;读…

PTA题解 --- 剪切粘贴(C语言)

今天是PTA题库解法讲解的第五天&#xff0c;今天我们要讲解剪切粘贴&#xff0c;题目如下&#xff1a; 解题思路&#xff1a; 为了解决这个问题&#xff0c;你可以按照以下步骤进行&#xff1a; 读取输入字符串&#xff1a;首先读取原始字符串。 进行操作&#xff1a;根据输入…