Docker系列 镜像

admin1年前笔记112


image.png

一、知识要点

  • 镜像基本操作

  • 镜像实现原理

二、镜像操作

image.png

镜像的操作可分为:

  • 拉取镜像:拉取远程仓库的镜像到本地

  • 重命名镜像:使用docker tag 命令重命名镜像

  • 查看镜像:使用docker image ls 或者 docker images命令查看本地已经存在的镜像

  • 删除镜像:删除无用镜像

  • 构建镜像:使用docker build命令基于Dockerfile构建镜像(推荐);使用docker commit命令基于已经运行的容器提交为镜像

三、拉取镜像

命令格式:

docker pull [Registry]/[Repository]/[Image]:[Tag]

参数说明:

  • Registry:为注册服务器,默认从docker.io拉取镜像,若有私有镜像仓库,可以把Registry替换为自己的注册服务器

  • Repository:镜像仓库,通常把一组相关联的镜像归为一个镜像仓库,library为默认镜像仓库

  • image : 镜像名称

  • tag : 镜像标签,若不指定,默认为latest

[root@localhost ~]# docker pull busybox Using default tag: latest latest: Pulling from library/busybox ea97eb0eb3ec: Pull complete  Digest: sha256:bde48e1751173b709090c2539fdf12d6ba64e88ec7a4301591227ce925f3c678 Status: Downloaded newer image for busybox:latest docker.io/library/busybox:latest

busybox是一个集成了数百个linux命令(如curl、grep、mount、telnet)的精简工具箱

执行docker pull busybox命令,先从本地搜索,如果搜索不到busybox镜像则从Docker Hub下载镜像(atest: Pulling from library/busybox:从默认镜像仓库下载)

四、查看镜像

命令:docker images 或者 docker image ls

[root@localhost ~]# docker images REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE busybox             latest              219ee5171f80        7 hours ago         1.23MB redis               5                   f60d84d4d72c        4 months ago        98.3MB mysql               5.7                 718a6da099d8        4 months ago        448MB hello-world         latest              bf756fb1ae65        11 months ago       13.3kB nginx               1.10                0346349a1a64        3 years ago         182MB [root@localhost ~]#

五、重命名镜像

命令格式:

docker tag [SOURCE_IMAGE][:TAG] [TARGET_IMAGE][:TAG]
[root@localhost ~]# docker tag busybox:latest busybox:tag [root@localhost ~]# docker images REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE busybox             latest              219ee5171f80        8 hours ago         1.23MB busybox             tag                 219ee5171f80        8 hours ago         1.23MB

TAG:多了一个tag,IMAGE ID是完全一样的,实际上它们指向了同一个镜像文件,只是别名不同。

六、删除镜像

命令:docker rmi 或者docker image rm

[root@localhost ~]# docker rmi busybox:tag  Untagged: busybox:tag [root@localhost ~]# docker images REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE busybox             latest              219ee5171f80        8 hours ago         1.23MB

七、构建镜像

  • 使用docker commit命令从运行中的容器提交为镜像

  • 使用docker build命令从Dockerfile构建镜像

使用Dockerfile构建镜像具有以下特性:

  • Dockerfile的每一行命令都会生成一个独立的镜像层,并且拥有唯一的ID

  • Dockerfile的命令是完全透明的,可以查看到如何一步步构建的

  • Dockerfile的纯文本的,方便与代码一起存放在代码仓库并做版本管理

Dockerfile常用的指令:

image.png

八、镜像实现原理

Docker镜像是由一系列镜像层(layer)组成的,每一层代表了镜像构建过程中的一次提交。

bash复制代码FROM busybox COPY test /tmp/test RUN mkdir /tmp/testdir

说明:

  • 第一行:基于busybox创建一个镜像层

  • 第二行:拷贝本机test文件到镜像内

  • 第三行:在/tmp文件夹下创建一个目录testdir


镜像是由一系列的镜像层(layer )组成,每一层代表了镜像构建过程中的一次提交,当我们需要修改镜像内的某个文件时,只需要在当前镜像层的基础上新建一个镜像层,并且只存放修改过的文件内容。分层结构使得镜像间共享镜像层变得非常简单和方便。

Docker镜像是静态的分层管理的文件组合,镜像底层的实现依赖于联合文件系统(UnionFS),充分掌握镜像的原理,可以帮助我们在生产实践中构建出最优的镜像,同时也可以帮助我们更好地理解容器和镜像的关系。


相关文章

Linux查看系统资源占用

Linux查看系统资源占用

在系统维护的过程中,随时可能有需要查看 CPU和内存的使用率,并根据相应信息分析系统状况的需求。本文介绍一下几种常见的Linux系统资源查看命令。1、总体内存占用的查看命令:free图1 free命令...

您需要为您的企业选择WINDOWS或LINUX服务器吗?

一、您的业务有多大?这似乎是一个简单的起点,但您需要确保您在日常业务的现实中奠定了基础。毕竟,虽然Windows和Linux都从IT角度提供了不错的功能,但确保这些功能真正有益于您正在运行的业务类型非...

OpenAI开放大模型微调功能!上传自己数据就可定制GPT-3.5Turbo

OpenAI开放大模型微调功能!上传自己数据就可定制GPT-3.5Turbo

现在,GPT-3.5 Turbo 支持自定义微调了!只需上传自己的数据,就可以运行专属的定制大模型。开发者狂喜!不少人惊呼:Awesome!早期测试表明,经过微调的 GPT-3.5 Turbo 版本在...

linux的网络服务功能—FTP、SSH和NFS

linux的网络服务功能—FTP、SSH和NFS

现在很多用linux进行开发的工程师,他们大多都是在windows系统上安装虚拟机,然后在虚拟机中安装linux系统,然后在里面完成项目的开发的。这种方式往往需要经常的和windows之间进行文件的传...

将Web应用性能提高十倍的10条建议

将Web应用性能提高十倍的10条建议

举一个例子,一份亚马逊十年前做过的研究可以证明,甚至在那个时候,网页加载时间每减少100毫秒,收入就会增加1%。另一个最近的研究特别强调一个事实,即超过一半的网站拥有者在调查中承认它们会因为应用程序性...

香港虚拟银行开户攻略:一小时搞定ZA BANK、livi理慧银行、天星银行、蚂蚁银行

香港虚拟银行开户攻略:一小时搞定ZA BANK、livi理慧银行、天星银行、蚂蚁银行

10月中旬去了一趟香港,主要是为了激活香港招商永隆银行账户,顺便申请了几家虚拟银行:ZA BANK、livi理慧银行、天星银行、蚂蚁银行,全程手机APP操作,大约花了一个小时的时间。本文会介绍这几家虚...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。