Docker Image(镜像)

这篇具有很好参考价值的文章主要介绍了Docker Image(镜像)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Docker镜像是什么

Docker image 本质上是一个 read-only 只读文件,这个文件包含了文件系统、源码、库文件、依赖、工具等一些运行 application 所必须的文件。我们可以把 Docker image 理解成一个模板, 可以通过这个模板实例化出来很多容器。
image 里面是一层层文件系统 Union FS。联合文件系统,可以将几层目录挂载到一起,形成一个虚拟文件系统。每一层文件系统我们叫做一层 layer,联合文件系统可以对每一层文件系统设置三种权限,只读(readonly)、读写(readwrite)和写出(whiteout-able),但是 docker镜像中每一层文件系统都是只读的。
Docker Image(镜像),Docker,docker,镜像,镜像命令,什么是镜像,为什么需要镜像
构建镜像的时候,从一个最基本的操作系统开始,每个构建的操作都相当于做一层的修改,增加了一层文件系统。一层层往上叠加,上层的修改会覆盖底层该位置的可见性,这也很容易理解,就像上层把底层遮住了一样。当你使用的时候,你只会看到一个完全的整体,你不知道里面有几层,也不清楚每一层所做的修改是什么。

为什么需要镜像

在部署应用时,通过手工或写一些脚本的方式进行部署。这样部署面临问题就是云端和本地环境一致问题。用户为每个应用打包过程比较繁琐,需要配置等操作,非常费劲。
然而,Docker 镜像就是为了解决这个打包功能。那么,你可能说 Docker 镜像就是个压缩包,是的,你猜对了,它就像一个压缩包文件。它是如何解决 Paas 时代所面临的云端和本地一致性问题?很简单,它是把一个镜像制作成一个完整的操作系统所有文件和对应的目录结构,这样的压缩包是跟你本地和测试环境用的操作系统一摸一样。
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 insepect 查看镜像详细信息
docker history docker image history 查看镜像历史
docker import docker image import 从归档文件docker export中创建镜像
docker image prune 删除不使用的镜像

docker images

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

Docker Image(镜像),Docker,docker,镜像,镜像命令,什么是镜像,为什么需要镜像

docker image inspect

查看镜像详细信息

docker image inspect [options] image [image...]

Docker Image(镜像),Docker,docker,镜像,镜像命令,什么是镜像,为什么需要镜像

docker tag

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

docker tag source_image[:tag] target_image[:tag]

Docker Image(镜像),Docker,docker,镜像,镜像命令,什么是镜像,为什么需要镜像

docker rmi

删除镜像,对于使用的镜像需要先清理容器再删除镜像

docker rmi [options] image [image...]
参数
  • -f:强制删除
  • –no-prune:不移除该镜像的过程镜像,默认移除

Docker Image(镜像),Docker,docker,镜像,镜像命令,什么是镜像,为什么需要镜像

docker save

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

docker save [options] image [image...] 
参数
  • -o:输出到哪一个文件

Docker Image(镜像),Docker,docker,镜像,镜像命令,什么是镜像,为什么需要镜像

docker load

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

docker load [options]
参数
  • -i:指定导入的文件
  • -q:精简输出信息

Docker Image(镜像),Docker,docker,镜像,镜像命令,什么是镜像,为什么需要镜像

docker history

显示镜像历史

docker history [options] image
参数
  • -H:大小和日期采用人容易读的格式展现
  • –no-trunc :显示全部信息,不要隔断
  • -q, --quiet:** **只显示镜像 id 信息;

Docker Image(镜像),Docker,docker,镜像,镜像命令,什么是镜像,为什么需要镜像
这是构建nginx镜像“盖的楼”(上面提的联合文件系统)

docker image prune

删除不使用的镜像,有两种含义一种是删除悬虚镜像,另一种是删除没被使用的容器。

docker image prune [options]
参数
  • -a:删除全部不使用的镜像(也就是没被使用的容器)
  • –fitter:指定过滤条件
  • -f:强制删除

Docker Image(镜像),Docker,docker,镜像,镜像命令,什么是镜像,为什么需要镜像

镜像操作案例

查找镜像

docker search busybox

但是该命令无法查看到tag,因此大多是去docker hub查看
Docker Image(镜像),Docker,docker,镜像,镜像命令,什么是镜像,为什么需要镜像

拉取镜像

Docker Image(镜像),Docker,docker,镜像,镜像命令,什么是镜像,为什么需要镜像

查看镜像及列表存储信息

Docker Image(镜像),Docker,docker,镜像,镜像命令,什么是镜像,为什么需要镜像
查看镜像仓库在本地的存储信息,进入/var/lib/docker/image目录,查看overlay2/repositories.json文件

cd /var/lib/docker/image
cat repositories.json

Docker Image(镜像),Docker,docker,镜像,镜像命令,什么是镜像,为什么需要镜像

查看镜像详情

Docker Image(镜像),Docker,docker,镜像,镜像命令,什么是镜像,为什么需要镜像

查看镜像分层

Docker Image(镜像),Docker,docker,镜像,镜像命令,什么是镜像,为什么需要镜像

打标签

Docker Image(镜像),Docker,docker,镜像,镜像命令,什么是镜像,为什么需要镜像

推送到仓库

Docker Image(镜像),Docker,docker,镜像,镜像命令,什么是镜像,为什么需要镜像

运行容器

Docker Image(镜像),Docker,docker,镜像,镜像命令,什么是镜像,为什么需要镜像
Docker Image(镜像),Docker,docker,镜像,镜像命令,什么是镜像,为什么需要镜像

删除镜像

先要退出busybox
Docker Image(镜像),Docker,docker,镜像,镜像命令,什么是镜像,为什么需要镜像
Docker Image(镜像),Docker,docker,镜像,镜像命令,什么是镜像,为什么需要镜像
docker ps -a看看
Docker Image(镜像),Docker,docker,镜像,镜像命令,什么是镜像,为什么需要镜像
Docker Image(镜像),Docker,docker,镜像,镜像命令,什么是镜像,为什么需要镜像
还有镜像没有删除掉
Docker Image(镜像),Docker,docker,镜像,镜像命令,什么是镜像,为什么需要镜像
无法让我们删除掉,是因为刚才我们启动了容器去跑这个镜像,所以要把这个容器删除掉
Docker Image(镜像),Docker,docker,镜像,镜像命令,什么是镜像,为什么需要镜像
镜像删除成功文章来源地址https://www.toymoban.com/news/detail-823530.html

到了这里,关于Docker Image(镜像)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 为什么需要websocket?

    前端和后端的交互模式最常见的就是前端发数据请求,从后端拿到数据后展示到页面中。如果前端不做操作,后端不能主动向前端推送数据,这也是http协议的缺陷。        因此,一种新的通信协议应运而生---websocket,他最大的特点就是服务端可以主动向客户端推送消息,客

    2024年02月12日
    浏览(59)
  • 为什么需要单元测试?

    为什么需要单元测试? 从产品角度而言,常规的功能测试、系统测试都是站在产品局部或全局功能进行测试,能够很好地与用户的需要相结合,但是缺乏了对产品研发细节(特别是代码细节的理解)。 从测试人员角度而言,功能测试和系统测试以及其他性能测试等等对测试

    2024年02月12日
    浏览(69)
  • 为什么需要uboot?

    bootROM: 一种固化在芯片内部的只读存储器(ROM),用于启动和初始化系统。BootROM 中通常包含了一些预先编写好的代码,用于完成系统启动前的基本初始化和配置, 例如初始化时钟、GPIO控制器、中断控制器、存储设备(SD卡、NAND Flash、SPicy Flash)等硬件资源, 检测启动设备

    2023年04月23日
    浏览(63)
  • 现在都在说 Docker 好,为什么我一用就出现这么多问题?查了一宿才解决!

    #配置国内源进行docker安装 报错 HTTP Error 404 - Not Found 原因:由于配置国内镜像源时,把地址写错了,导致后面安装docker提示HTTP Error 404 解决方法: 1)进入到 /etc/yum.repos.d目录下   如果你想学习docker教程,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的docker教

    2024年02月11日
    浏览(47)
  • 爬虫为什么需要ip

    爬虫需要使用爬虫ip主要是为了解决以下问题: 1、反爬虫机制:许多网站会设置反爬虫机制来防止爬虫程序的访问,例如限制IP地址的访问频率、检测访问来源等。使用爬虫ip可以绕过这些限制,使得爬虫程序更难被检测到。 2、访问限制:有些网站可能会对某些地区的IP地址

    2024年02月02日
    浏览(60)
  • 爬虫时为什么需要代理?

    我们都知道爬虫时是需要代理地址介入的。使用代理可以隐藏你的真实IP地址,防止被网站封禁或限制访问。此外,代理还可以帮助你绕过地理限制,访问被封锁的网站或服务。但是请注意,使用代理也可能会带来一些风险,例如代理服务器可能会记录你的访问数据,或者代

    2024年02月06日
    浏览(56)
  • 为什么需要对相机标定?

    以下内容来自系统教程如何搞定单目/鱼眼/双目/阵列 相机标定? 点击领取相机标定资料和代码 为什么需要对相机标定? 我们所处的世界是三维的,而相机拍摄的照片却是二维的,丢失了其中距离/深度的信息。从数学上可以简单理解为,相机本身类似一个映射函数,其将输

    2024年02月06日
    浏览(55)
  • 为什么自动驾驶需要5G?

    什么叫自动驾驶? 自动驾驶分为6个等级: Level 0: 人工驾驶,无驾驶辅助系统,仅提醒。 Level 1: 辅助人工驾驶,可实现单一的车速或转向控制自动化,仍由人工驾驶(如定速巡航、ACC)。 Level 2: 部分自动驾驶,可实现车速和转向控制自动化,驾驶员必须始终保持监控(

    2024年02月08日
    浏览(65)
  • 为什么CPU需要时钟

    为什么CPU需要时钟这样一个概念? 什么是时钟脉冲,CPU为什么需要时钟,时钟信号是怎么产生的? 上面这个图的方波就是一个脉冲,类比于人类的脉搏跳动。一个脉冲称之为CPU的一个 时钟信号 ,或者 时钟脉冲 。一个脉冲周期就叫CPU时钟周期,一个时钟周期内时钟信号震荡一

    2023年04月11日
    浏览(54)
  • 什么是分库分表?为什么需要分表?什么时候分库分表

    不急于上手实战  ShardingSphere  框架,先来复习下分库分表的基础概念,技术名词大多晦涩难懂,不要死记硬背理解最重要,当你捅破那层窗户纸,发现其实它也就那么回事。 分库分表是在海量数据下,由于单库、表数据量过大,导致数据库性能持续下降的问题,演变出的技

    2023年04月26日
    浏览(146)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包