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

Docker Image(镜像)

“脚印会旧而梦还在走” 


Docker 镜像介绍

(1) 如何理解镜像?

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

🎯 我们也可以把docker image理解成一个模板,根据这个模板可以实例化出很多 “容器”。至于容器是什么?这里我们就简单理解成一个 "独立的操作系统+应用程序" 即可。

🎯 在image中是一层层文件系统 Union FS。联合文件系统,可以将几层目录挂载到一起,形成一个虚拟文件系统。每一层文件系统就叫做当前层的 “layer“。例如,我们可以在docker hub随意举例一个镜像文件:

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

镜像分层       

        在构建镜像的时候,都是从一个最基本的操作系统开始的。每个构建的操作都相当于做一层的修改,增加了一层文件系统。于是,一层层往上叠加,上层的修改会覆盖底层该位置的可见性。

         这种构建的过程就类似于装地暖。我们人仅仅是能感受到表层木板,但不知道模板下还填了钢筋水泥层、加保温层,采暖管等。

为什么需要镜像?

        Docker镜像本质就是一个”可读文件“,所以Docker镜像天然就具有 “打包”的功能。

        往往我们的生产环境与研发环境是不一样的,为了正确地迁移、部署,我们需要做很多麻烦的工作。Docker镜像就像一个压缩包一样,它自身内部就具有一个完整的操作系统所有文件和对应的目录结构,与本地环境没有任何的关联性,从而屏蔽掉了环境的差异性。

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

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 命令详解:

🧩 docker images

语法:

# 列出本地镜像
docker images [OPTIONS] [REPOSITORY[:TAG]]

OPTIONS:
-a :列出本地所有的镜像
--digests :显示镜像的摘要信息
-f :显示满足条件的镜像
--format :指定返回值的模板文件
--no-trunc :显示完整的镜像信息
-q :只显示镜像 ID

🧩 docker tag 

语法:

# 标记本地镜像,将其归入某一仓库
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

        

🧩 docker rmi

语法:

# 删除镜像
docker rmi [OPTIONS] IMAGE [IMAGE...]

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

        如果是删除标签,仅仅是将这个标签借关联。直到删除镜像,才会真正将这个镜像删除。

🧩 docker save

语法:

# 将指定镜像保存成 tar 归档文件
docker save [OPTIONS] IMAGE [IMAGE...]

OPTIONS:
-o :输出到的文件

         我们想要将这两个镜像打包归档:

        通过命令生成.tar文件

🧩 docker load

语法:

# 导入使用 docker save 命令导出的镜像
docker load [OPTIONS]

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

        我们将之前的本地镜像删除。

        我们再通过指定导入.tar包,加载镜像文件。

🧩 docker image inspect 

# 查看镜像详细信息
docker image inspect [OPTIONS] IMAGE [IMAGE...]

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

        

🧩 docker history

语法:

# 显示镜像历史
docker history [OPTIONS] IMAGE

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

        这些镜像历史通常就是显示出这个镜像文件历史 layer层。

🧩 docker image prune

语法:

# 删除不使用的镜像
docker image prune [OPTIONS]

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

        这些镜像没有被使用过,所以就会被删除。这个命令需小心谨慎地使用,以防误删。

        至于docker build与镜像制作有关 、docker import本质就是生成当前容器的快照版本,则不是本篇要细说的。


镜像操作案例

        我们已经习得docker镜像命令的使用。所以本小节就是以使用busybox镜像对这些命令操作进行使用、回顾。

什么是busybox?

        BusyBox是一个集成了三百多个最常用Linux命令和工具的软件。

拉取镜像

docker pull busybox:1.36.0

        成功拉取下来。

查看镜像详情

docker image inspect busybox:1.36.0

查看镜像分层 

docker history busybox:1.36.0

打标签 

docker tag busybox:1.36.0 registry.cn-chengdu.aliyuncs.com/wgzzs/test_registry:v1.0

推送镜像

docker login registry.cn-chengdu.aliyuncs.com

        首先需要登录认证。

docker push registry.cn-chengdu.aliyuncs.com/wgzzs/test_registry:v1.1

        完成推送 

运行容器

docker run -it --rm busybox:1.36.0

        我们可以再容器中的命令行输入 busybox为我们打包的linux命令。

镜像删除 

        镜像的删除:可以根据 id 和名字删除,对于使用的镜像需要先清理容器再删除镜像

docker rmi busybox:1.36.0


本篇到此结束,感谢你的阅读。

祝你好运,向阳而生~ 

相关文章:

  • 用html编写的招聘简历
  • 后端设计PNR一点总结
  • 数据挖掘-Weka的安装与使用
  • bat脚本 创建计划任务 一分钟设置ntp同步周期为60s
  • @ControllerAdvice 统一管理异常/错误
  • jvm垃圾收集器-三色标记算法
  • 【elasticsearch实战】知识库文件系统检索工具FSCrawler
  • leetcode hot100组合综合四
  • neo4j常用代码
  • nginx 日志改为json格式
  • 【前端工程化面试题】webpack proxy的工作原理,为什么能解决跨域问题
  • Mac远程连接Windows 11
  • 【软件架构】02-复杂度来源
  • 深入理解指针(c语言)
  • 外包干了3个多月,技术退步明显。。。。
  • 【Linux基础】vim、常用指令、组管理和组权限
  • Git笔记——2
  • Docker镜像加速
  • Bert基础(三)--位置编码
  • Ubuntu22.04防火墙ufw用法
  • 80后共青团云南省委副书记许思思已任迪庆州委副书记
  • 国务院安委会对辽宁辽阳一饭店重大火灾事故查处挂牌督办
  • 中办、国办印发《安全生产考核巡查办法》
  • 卸任兰大校长后,严纯华院士重返北大作报告
  • 油电同智,安全超充!从上海车展看中国汽车产业先发优势
  • 专访|伊朗学者:美伊核谈不只是改革派立场,但伊朗不信任美国