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 用户公开共享
镜像命令
总览
command | alias | function |
---|---|---|
docker images | docker image ls / docker image list | 列出本地镜像 |
docker tag | docker image tag | 给镜像打标签, 可用于推送至镜像仓库 |
docker pull | docker image pull | 从镜像仓库拉取镜像 |
docker push | docker image push | 推送镜像到仓库 |
docker rmi | docker image rm / docker image remove | 删除本地镜像 |
docker build | docker image build | 通过 dockerfile 制作镜像 |
docker save | docker image save | 将指定镜像保存成 tar 归档文件 |
docker load | docker image load | 导入使用 docker save 命令导出的镜像 |
docker image inspect | 查看镜像详细信息 | |
docker history | docker image history | 查看镜像历史 |
docker import | docker 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
相关文章:

Docker-Image
Docker Docker 镜像是什么为什么需要镜像镜像命令总览docker imagesdocker tagdocker pulldocker pushdocker rmidocker savedocker loaddocker image inspectdocker historydocker importdocker image prunedocker build Docker 镜像是什么 Docker image 本质上是一个 read-on…...
YOLOv8 如何实现多主干特征融合方式 | GhostNet+ShuffleNet / SwinTransformer+ShuffleNet
文章目录 前言模块添加方法双特征提取例子`GhostNet+ShuffleNet` 双主干结构图代码`Swin+ShuffleNet` 双主干结构图代码参数量与计算量1. 什么是YOLO-Magic框架?2. 如何加入这个框架?3. 加入后如何使用框架?4. GitHub组织是什么?...
工作需求ElementUi组件的使用
加油,新时代打工人! 组件源码 <template><div mouseenter"mousein true" mouseleave"mousein false"><el-input type"text" clearable autocomplete"off" v-model"searchDoc.originName…...
自动驾驶轨迹规划之时空语义走廊(一)
欢迎大家关注我的B站: 偷吃薯片的Zheng同学的个人空间-偷吃薯片的Zheng同学个人主页-哔哩哔哩视频 (bilibili.com) 目录 1.摘要 2.系统架构 3.MPDM 4.时空语义走廊...

[环境配置].ssh文件夹权限修改方法
问题描述: 通过VSCode中的Remote Explorer或者通过CMD等命令行窗口连接远程机器时,会因为提示 "Bad owner or permissions on C:\\Users\\xxx/.ssh/config"而导致失败,最终呈现在VSCode中的效果是,弹窗提示"Could…...

LeetCode刷题【树状数组、并查集、二叉树】
目录 树状数组307. 区域和检索 - 数组可修改406. 根据身高重建队列673. 最长递增子序列的个数1409. 查询带键的排列 并查集128. 最长连续序列130. 被围绕的区域 二叉树94. 二叉树的中序遍历104. 二叉树的最大深度101. 对称二叉树543. 二叉树的直径108. 将有序数组转换为二叉搜索…...
使用POI以OLE对象的形式向excel中插入附件(pdf为例)
前言: 最近在使用easyExcel操作excel文件时,一直想找到一个方法可以往excel中填充附件,但是目前只发现POI可以插入附件,于是将方法记录如下: 实现: 这个方法主要是使用 Apache POI 的 HSSFWorkbook 类来…...
Unity构建详解(2)——SBP的初始设置和脚本编译
【SwitchToBuildPlatform】 核心逻辑如下 EditorUserBuildSettings.SwitchActiveBuildTarget(m_Parameters.Group, m_Parameters.Target); 直接调用切换平台的接口,一般来说,这个步骤不会执行,我们打包时肯定会事先将平台切换好的 【Rebu…...

Matlab使用教程(持续更新)
1. Matlab Matlab被广泛的应用在数据分析,汽车仿真,机器人以及医学研究等众多方面。 它可以帮助我们理解研究复杂的系统。 在60年代和70年代,计算机使得科学家和工程师完成了以前不可能进行的计算;但是需要懂得计算机编程。 C…...

管理能力学习笔记一:角色转身
管理能力学习是为了解决角色转身后面临的更多更复杂的的问题。初晋管理层,需要转变工作习惯,学会分配时间。 角色转身 建立“授权”意识 通过匹配工作内容与下属员工能力,分配工作,避免陷入下属能力不足 -> 不愿授权 -> 下…...
Redis面试题 概要
文章目录 Redis面试题 概要缓存穿透布隆过滤器缓存击穿缓存雪崩数据同步数据持久化数据过期策略Redis的数据淘汰策略Redis + Lau 限流Redis面试题 概要 Redis是一个基于 C 语言开发的开源 NoSQL 数据库,Redis 的数据是保存在内存中的(内存数据库,支持持久化),因此读写速度…...
原型,模板,策略,适配器模式
原型模式 原型模式(创建型模式),核心思想就是:基于一个已有的对象复制一个对象出来,通过复制来减少对象的直接创建的成本。 总结一下,原型模式的两种方法,浅拷贝只会复制对象里面的基本数据类型…...
Ollama 在本地快速启动并执行LLM【大语言模型】
文章目录 1. 什么是Ollama?1.1. SDK库1.2. 提供的api服务1.3. [支持的LLM](https://ollama.com/library)2. 如何安装2.1.下载docker镜像2.2. 启动docker容器3. 如何使用?3.1. 如何加载模型3.2. 使用 Ollama CLI 进行推理3.3. 使用 Ollama API 进行推理参考1. 什么是Ollama?...
ubuntu : 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
往后看,90%能解决你的问题 原文链接:学一下 (suxueit.com) 我相信很多人刚使用ubuntu都遇到过这个问题,如果没有遇到,可能是你运气好使用了正确的软件源 libprotobuf-dev : 依赖: zlib1g-dev 但是它将不会被安装 zlib1g-dev : 依…...

瑞芯微RK3576|触觉智能:开启科技新篇章
更多产品详情可关注深圳触觉智能官网! “瑞芯微,创新不止步!”——全新芯片RK3576即将震撼登场。指引科技风潮,创造未来无限可能!这款芯片在瑞芯微不断创新和突破的道路上,不仅是对过往成就的完美延续&…...

Visual Studio 2013 - 清理
Visual Studio 2013 - 清理 1. 清理1.1. 工程清理1.2. 解决方案清理 References 1. 清理 Debug Release 1.1. 工程清理 (right mouse click on the project) -> 清理 1.2. 解决方案清理 (right mouse click on the solution) -> 清理解决方案 References [1] Yongq…...

1、初识JVM
一、JVM是什么? JVM的英文全称是 Java Virtual Machine,其中文译名为Java虚拟机。它在本质上就是是一个运行在计算机上的程序,他的职责是运行Java字节码文件。 JVM执行流程如下 二、JVM有哪些功能? 2.1 解释和运行 对字节码文…...
JavaScript 权威指南第七版(GPT 重译)(七)
第十六章:用 Node 进行服务器端 JavaScript Node 是 JavaScript 与底层操作系统的绑定,使得编写 JavaScript 程序读写文件、执行子进程和在网络上通信成为可能。这使得 Node 作为以下用途变得有用: 现代替代 shell 脚本的方式,不…...

从零开始搭建游戏服务器 第四节 MongoDB引入并实现注册登录
目录 前言正文添加依赖安装MongoDB添加MongoDB相关配置创建MongoContext类尝试初始化DB连接实现注册功能测试注册功能实现登录逻辑测试登录流程 结语下节预告 前言 游戏服务器中, 很重要的一点就是如何保存玩家的游戏数据. 当一个服务端架构趋于稳定且功能全面, 开发者会发现服…...

【Unity】宏定义Scripting Define Symbols
1.宏的用处 我们在使用Unity开发的时候,经常需要根据不同环境执行不同的代码 比如安卓手机和苹果手机获取路径代码 这个时候,宏就派上用场了。 代码示例: //获取路径public string GtePath(){//不同平台,取不同的存储路径string…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...

Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...
tomcat指定使用的jdk版本
说明 有时候需要对tomcat配置指定的jdk版本号,此时,我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...