文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Docker镜像的基本操作方法是什么

2023-07-02 17:16

关注

今天小编给大家分享一下Docker镜像的基本操作方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

一、获取镜像

之前我们提到过 Docker 官⽅提供了⼀个公共的镜像仓库:Docker Hub,我们就可以从这上⾯获取镜像,获取镜像的命令:docker pull,格式为: 

$ docker pull [选项] [Docker Registry 地址[:端⼝]/]仓库名[:标签]

Docker 镜像仓库地址:地址的格式⼀般是 <域名/IP>[:端⼝号],默认地址是 Docker Hub。

仓库名:这⾥的仓库名是两段式名称,即 <⽤户名>/<软件名>。对于 Docker Hub,如果不给出⽤ 户名,则默认为 library,也就是官⽅镜像。⽐如: 

$ docker pull ubuntu:16.04 16.04: Pulling from library/ubuntu bf5d46315322: Pull complete 9f13e0ac480c: Pull complete e8988b5b3097: Pull complete 40af181810e7: Pull complete e6f7c7e5c03e: Pull complete Digest: sha256:147913621d9cdea08853f6ba9116c2e27a3ceffecf3b492983ae97c3d643fbbe Status: Downloaded newer image for ubuntu:16.04

上⾯的命令中没有给出 Docker 镜像仓库地址,因此将会从 Docker Hub 获取镜像。⽽镜像名称是 ubuntu:16.04,因此将会获取官⽅镜像 library/ubuntu 仓库中标签为 16.04 的镜像。 从下载过程中 可以看到我们之前提及的分层存储的概念,镜像是由多层存储所构成。下载也是⼀层层的去下 载,并⾮单⼀⽂件。下载过程中给出了每⼀层的 ID 的前 12 位。并且下载结束后,给出该镜像完 整的 sha256 的摘要,以确保下载⼀致性。

二、运行镜像

有了镜像后,我们就能够以这个镜像为基础启动并运⾏⼀个容器。以上⾯的 ubuntu:16.04 为例,如果 我们打算启动⾥⾯的 bash 并且进⾏交互式操作的话,可以执⾏下⾯的命令。

$ docker run -it --rm \ ubuntu:16.04 \ /bin/bash root@e7009c6ce357:/# cat /etc/os-release NAME="Ubuntu"VERSION="16.04.4 LTS, Trusty Tahr" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 16.04.4 LTS"VERSION_ID="16.04" HOME_URL="http://www.ubuntu.com/"SUPPORT_URL="http://help.ubuntu.com/" BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"

docker run 就是运⾏容器的命令,具体格式我会在以后进⾏详细讲解,我们这⾥简要的说明⼀下上⾯⽤到的参数:

-it:这是两个参数,⼀个是 -i:交互式操作,⼀个是 -t 终端。我们这⾥打算进⼊ bash 执⾏⼀些命 令并查看返回结果,因此我们需要交互式终端。
--rm:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会⽴ 即删除,除⾮⼿动 docker rm。我们这⾥只是随便执⾏个命令,看看结果,不需要排障和保留结 果,因此使⽤ --rm 可以避免浪费空间。
ubuntu:16.04:这是指⽤ ubuntu:16.04 镜像为基础来启动容器。
bash:放在镜像名后的是命令,这⾥我们希望有个交互式 Shell,因此⽤的是 bash。

进⼊容器后,我们可以在 Shell 下操作,执⾏任何所需的命令。这⾥,我们执⾏了 cat /etc/os- release ,这是 Linux 常⽤的查看当前系统版本的命令,从返回的结果可以看到容器内是 Ubuntu 16.04.4 LTS 系统。最后我们通过 exit 退出了这个容器。

三、列出镜像

$ docker image ls

列表包含了仓库名、标签、镜像 ID、创建时间以及所占⽤的空间。镜像 ID 则是镜像的唯⼀标识,⼀个镜像可以对应多个标签。 

四、镜像大小

如果仔细观察,会注意到,这⾥标识的所占⽤空间和在 Docker Hub 上看到的镜像⼤⼩不同。⽐如, ubuntu:16.04 镜像⼤⼩,在这⾥是 127 MB,但是在Docker Hub显示的却是 43 MB。这是因为 Docker Hub 中显示的体积是压缩后的体积。在镜像下载和上传过程中镜像是保持着压缩状态的,因此 Docker Hub 所显示的⼤⼩是⽹络传输中更关⼼的流量⼤⼩。⽽ docker image ls 显示的是镜像下载到本地后展开的⼤⼩,准确说,是展开后的各层所占空间的总和,因为镜像到本地后,查看空间的时候, 更关⼼的是本地磁盘空间占⽤的⼤⼩。

另外⼀个需要注意的问题是, docker image ls 列表中的镜像体积总和并⾮是所有镜像实际硬盘消 耗。由于 Docker 镜像是多层存储结构,并且可以继承、复⽤,因此不同镜像可能会因为使⽤相同的基 础镜像,从⽽拥有共同的层。由于 Docker 使⽤ Union FS ,相同的层只需要保存⼀份即可,因此实际 镜像硬盘占⽤空间很可能要⽐这个列表镜像⼤⼩的总和要⼩的多。你可以通过以下命令来便捷的查看镜像、容器、数据卷所占⽤的空间。 

$ docker system df

五、删除本地镜像

如果要删除本地的镜像,可以使⽤`docker image rm&middot;命令,其格式为:

$ docker image rm [选项] <镜像1> [<镜像2> ...]

或者

$ docker rmi 镜像名

或者⽤ ID、镜像名、摘要删除镜像,其中,<镜像> 可以是 镜像短 ID、镜像⻓ ID、镜像名 或者 镜像摘要。 ⽐如我们有这么⼀些镜像:

$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZEcentos latest 0584b3d2cf6d 3 weeks ago 196.5 MB redis alpine 501ad78535f0 3 weeks ago 21.03 MB docker latest cf693ec9b5c7 3 weeks ago 105.1 MB nginx latest e43d811ce2f4 5 weeks ago 181.5 MB

我们可以⽤镜像的完整 ID,也称为⻓ ID,来删除镜像。使⽤脚本的时候可能会⽤⻓ ID,但是⼈⼯输⼊就太累了,所以更多的时候是⽤短 ID 来删除镜像。 docker image ls 默认列出的就已经是短 ID 了,⼀般取前3个字符以上,只要⾜够区分于别的镜像就可以了。 

⽐如这⾥,如果我们要删除redis:alpine镜像,可以执⾏:

$ docker image rm 501 Untagged: redis:alpine Untagged: redis@sha256:f1ed3708f538b537eb9c2a7dd50dc90a706f7debd7e1196c9264edeea521a86d Deleted: sha256:501ad78535f015d88872e13fa87a828425117e3d28075d0c117932b05bf189b7 Deleted: sha256:96167737e29ca8e9d74982ef2a0dda76ed7b430da55e321c071f0dbff8c2899b Deleted: sha256:32770d1dcf835f192cafd6b9263b7b597a1778a403a109e2cc2ee866f74adf23 Deleted: sha256:127227698ad74a5846ff5153475e03439d96d4b1c7f2a449c7a826ef74a2d2fa Deleted: sha256:1333ecc582459bac54e1437335c0816bc17634e131ea0cc48daa27d32c75eab3 Deleted: sha256:4fc455b921edf9c4aea207c51ab39b10b06540c8b4825ba57b3feed1668fa7c7

我们也可以⽤镜像名,也就是 <仓库名>:<标签>,来删除镜像。

$ docker image rm centos Untagged: centos:latest Untagged: centos@sha256:b2f9d1c0ff5f87a4743104d099a3d561002ac500db1b9bfa02a783a46e0d366c Deleted: sha256:0584b3d2cf6d235ee310cf14b54667d889887b838d3f3d3033acd70fc3c48b8a Deleted: sha256:97ca462ad9eeae25941546209454496e1d66749d53dfa2ee32bf1faabd239d38

以上就是“Docker镜像的基本操作方法是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯