当前位置: 首页 > news >正文

docker是什么以及镜像命令详解

Docker 镜像是什么

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

        可以将镜像理解成一个模板或者类,通过这个类或者说模板可以实例化出来很多容器

        image里面是一层层文件系统Union FS。联合文件系统,可以将几层目录挂载到一起,形成一个虚拟文件系统。

        每一层文件系统我们称为一层layer,联合文件系统可以对每一层文件系统设置三种权限,只读(readonly)、读写(readwrite)和写出(whiteout-able),但是docker镜像中的每一层文件系统都是只读的

        构建镜像的时候,从一个最基本的操作系统开始,每个构建的操作都相当于做一层的修改,增加了一层文件系统。一层层往上叠加,上层的修改会覆盖底层该位置的可见性,这也很容易理解,就像上层把底层遮住了一样。当你使用的时候,你只会看到一个完全的整体,你并不知道里面有几层,也不清楚每一层所做的修改是什么。

镜像生活案例

        镜像相当于我们java或者c++中的类,相当于一个模板,可以很方便的构建出来不同的对象。

镜像分层生活案例

我们以日常的地板为例,开发商的房子提供给用户的时候一般是做好了地暖,而这些地暖其实是一层一层添加的,最底层的钢筋水泥层,然后添加保温层,采暖管,再铺设水泥层,到最后交付的时候家家户户都是水泥面,这一层一般是不可修改的,最上层用户一般会再铺设商木地板或者地板砖每家每户的选择不一样,相当于我们镜像的容器层。

为什么需要镜像

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

        然而Docker镜像就是为了解决这个小小的打包功能,而出名的。Docker其实就像一个压缩包文件,它解决云端和本地一致性问题的方法很简单,直接把一个镜像制作成完整的操作系统包含所有的文件和对应的目录结构,这样的压缩包是跟你本地和测试环境使用的操作系统一摸一样的。

        docker最大的贡献就是定义了容器镜像的分层存储格式,docker镜像技术的基础就是联合文件系统(UnionFS),其文件系统是分层的。这样即可以充分利用共享层,又可以减少存储空间占用。

        docker镜像提供了一种打包应用程序和预配置服务器环境的便捷方式,可以很方便的将其用于个人用途或与其他Docker用户公开共享。

镜像命令详解

镜像命令清单:

标红字段后面详细讲解

命令

别名

功能

备注

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

功能:列出本地镜像

语法如下

关键参数

-a

列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层)

--digests

显示镜像的摘要信息

-f

显示满足条件的镜像

--format

指定返回值的模板文件

--no-trunc

显示完整的镜像信息

-q

只显示镜像ID

可以直接输入镜像名称进行过滤

docker tag

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

语法如下

这里可以看看阿里云的案例,后续我的推送和登录会以案例容器镜像服务为基础

docker pull 和 docker push

拉取官网的镜像看上面的截图

拉取阿里云的镜像

将镜像推送到阿里云

ocker rmi

功能:删除镜像

语法如下

关键参数

-f

强制删除

--no-prune

不移除该镜像的过程镜像,默认删除

docker save

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

语法如下

关键参数 -o:输出到文件

docker load

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

语法如下

关键参数

--input,-i

指定导入的文件,代替STDIN

--quiet,-q

精简输出信息

docker history

功能:查看镜像的详细信息

语法如下

关键参数

-H,--human

大小和日期采用人容易读懂的格式展现

--no-trunc

显示全部信息,不要阻隔

-q,--quiet

只显示镜像id信息

docker import

功能:从归档文件中创建镜像

语法如下

关键参数

-c

应用docker指令创建镜像

-m

提交时的说明文字

docker image prune

功能:删除不使用的镜像

语法如下

关键参数

-a,--all

删除全部不使用的镜像

--filter filter

指定过滤条件

-f,--force

不提示是否删除;

docker build

功能:docker build命令用于使用Dockerfile创建镜像

语法如下

关键参数

--build-arg=[]

设置创建镜像时的变量

-f

指定要使用的Dockerfile路径

--label=[]

设置镜像使用的元数据

--no-cache

创建镜像的过程中不使用缓存

--pull

尝试去更新镜像的新版本

--quiet,-q

安静模式,成功后只输出镜像ID

--rm

设置镜像成功后删除中间容器

--tag,-t

镜像的名字及标签,通常name:tag或者name格式;可以在一次构建中为一个镜像设置多个标签

--network

默认default。在构建期间设置RUN指令的网络模式

        docker build 是 Docker 的核心命令之一,用于 根据 Dockerfile 构建自定义镜像。它的作用不仅仅是打包文件,而是通过逐层(Layer)执行指令来创建一个可移植、可复现的容器镜像。

http://www.lryc.cn/news/617592.html

相关文章:

  • C++模板的补充
  • 【读代码】微软开源Agentic-RAG深度解析
  • Profile.vue组件详细解析
  • SDH 和 OTN 的帧结构对比
  • 3.数据类型和类型装换
  • Spring-Security-5.7.11升级6.5.2
  • Unity笔记(五)知识补充——场景切换、退出游戏、鼠标隐藏锁定、随机数、委托
  • 前端面试:promise...then与asnyc ...await
  • 简单了解MongoDB数据存储
  • ‌太钢建材:筑就未来,品质见证
  • 软考倒计时 巧用芝麻倒计时软件 助力高效备考 有效提升备考效率
  • DNS(域名系统)
  • 关于线性DP模板
  • 月报 Vol.02:新增条件编译属性 cfg、#alias属性、defer表达式,增加 tuple struct 支持
  • 基于OpenCV的实时美颜技术:从传统算法到深度学习融合实现
  • 基恩士 CA CNX10U 视觉连接器REPEATER CA CN or CV- C 日本原装进口
  • 【软考中级网络工程师】知识点之 TCP 协议深度剖析
  • 嵌入式第二十五课!!!文件读写操作补充与应用、以及文件流定位相关函数接口
  • idea没有 Active Profiles 的填写位置
  • 企业级 IT 运维服务平台数据备份方案:基于 rsync 的自动化实现
  • 视觉相机偏移补偿
  • 在macOS上扫描192.168.1.0/24子网的所有IP地址
  • 初识影刀:将多个相同格式EXCEL中内容汇总到一个EXCEL文件中去
  • Camera open failed
  • 在Linux中模拟配置高性能web服务器
  • gophis钓鱼
  • 掌握while循环:C语言编程基础
  • [动态规划]最长公共子序列(LCS)
  • golang 基础案例_01
  • Go选手如何快速上手第三方库