docker的底层原理,带你上天

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

1、docker的层级怎么看

先查看当前机器上有哪些镜像

docker images

这里选看mysql的层级

docker image inspect mysql:5.7.29 命令。其中RootFS部分则是表示了分层信息。

docker的底层原理,带你上天

 2、查看docker的系统信息

因为这台机器的docker不是我安装的,所以不知道具体的根目录在哪里,可以使用下面的命令

docker info

docker的底层原理,带你上天 上面可以看到docker的信息

3、Docker 的默认工作目录 各文件夹的意义

Docker 的默认工作目录是 /var/lib/docker/,该目录包含了 Docker 的所有数据,包括镜像、容器、卷、网络等等。下面是 /var/lib/docker/ 目录下的一些常见子目录及其意义:

1. /var/lib/docker/containers/: 包含所有 Docker 容器的数据,每个容器会在该目录下创建一个子目录,存储该容器的相关数据,例如容器的元数据、日志和文件系统等。

2. /var/lib/docker/image/: 包含所有 Docker 镜像的数据,每个镜像会在该目录下创建一个子目录,存储该镜像的相关数据,例如镜像的元数据、层信息等。

3. /var/lib/docker/volumes/: 包含所有 Docker 卷的数据,每个卷会在该目录下创建一个子目录,存储该卷的相关数据,例如卷的元数据和卷中的文件。

4. /var/lib/docker/network/: 包含所有 Docker 网络的数据,每个网络会在该目录下创建一个子目录,存储该网络的相关数据,例如网络的元数据和配置等。

5. /var/lib/docker/plugins/: 包含所有 Docker 插件的数据,每个插件会在该目录下创建一个子目录,存储该插件的相关数据,例如插件的元数据和配置等。

6. /var/lib/docker/swarm/: 包含 Docker Swarm 的相关数据,例如节点的元数据、服务的配置、证书和密钥等。

7./var/lib/docker/overlay2:镜像和容器的层文件的实际存储目录

4、docker守护程序的日志在哪

Docker 守护进程的日志记录在系统日志中,具体位置和命名方式可能因操作系统而异。下面是一些常见的操作系统和对应的 Docker 日志文件位置:

- Ubuntu 16.04及更早版本: /var/log/upstart/docker.log
- Ubuntu 18.04及更高版本: /var/log/syslog
- CentOS 7: /var/log/messages
- Debian/Ubuntu: /var/log/daemon.log

5、docker Overlay2 文件系统原理

拉取一个nginx镜像,观察拉取过程:可以看到镜像一共被分为6层拉取。

docker的底层原理,带你上天

/var/lib/docker/overlay2/ 目录下也多了6个文件夹

docker的底层原理,带你上天

 可以通过上面的docker image inspect nginx查看层级

在下载镜像时,Docker Daemon会检查镜像中的镜像层与宿主机文件系统中的镜像层进行对比,如果存在则不下载,只下载不存在的镜像层。

分层的原因:文章来源地址https://www.toymoban.com/news/detail-436652.html

  1. 分层最大的一个好处就是共享资源
  2. 有多个镜像都从相同的base镜像构建而来,那么宿主机只需在磁盘上保存一份base镜像;
  3. 同时内存中也只需加载一份base镜像,就可以为所有容器服务了,而且镜像的每一层都可以被共享。

到了这里,关于docker的底层原理,带你上天的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Docker从入门到上天系列第一篇:Docker开篇介绍

    😉😉 欢迎加入我们的学习交流群呀! ✅✅1:这是 孙哥suns 给大家的福利! ✨✨2:我们 免费分享Netty、Dubbo、k8s、Mybatis、Spring、Security、Docker、Grpc、消息中间件、Rpc、SpringCloud等等很多应用和源码级别高质量视频和笔记资料 ,你想学的我们这里都有! 🥭🥭3:QQ群: 5837

    2024年02月21日
    浏览(30)
  • docker的底层原理四: 资源隔离

    概述 :Docker 使用 Linux 内核的 Namespace 和 Cgroups 技术来实现资源隔离。这些技术保证了在宿主机上运行的每个 Docker 容器都是相互独立的,它们各自拥有自己的资源,并且不会互相干扰。以下是 Docker 资源隔离机制的一些具体细节: CPU 隔离 :通过 Cgroups 技术,Docker 可以对 C

    2024年02月20日
    浏览(28)
  • docker的底层原理三: 内核共享

    概述 :Docker 的容器运行时环境基于操作系统级虚拟化技术,其核心之一就是“内核共享”机制。当使用 Docker 容器时,以下是内核共享方面的底层原理和细节: 1. 内核空间与用户空间 内核空间 :在 Linux 系统中,内核空间包含操作系统的核心功能,例如进程调度、内存管理

    2024年02月21日
    浏览(28)
  • docker的联合文件系统 UnionFS《深入docker底层原理》

    docker最大的贡献就是定义了容器镜像的分层的存储格式,docker镜像技术的基础是联合文件系统(UnionFS),其文件系统是分层的。这样既可以充分利用共享层,又可以减少存储空间占用。 联合挂载系统的工作原理:读:如果文件在upperdir(容器)层,直接读取文件;如果文件不在u

    2024年02月13日
    浏览(40)
  • Docker圣经:大白话说Docker底层原理,6W字实现Docker自由

    现在 拿到offer超级难 ,甚至连面试电话,一个都搞不到。 尼恩的 技术社群 (50+)中,很多小伙伴凭借 “左手云原生+右手大数据”的绝活,拿到了offer,并且是非常优质的offer,据说年终奖都足足18个月。 而云原生的核心组件是 Docker + K8S,但是 Docker 又很难。在这里,尼恩从

    2023年04月08日
    浏览(33)
  • Docker底层原理:Cgroup V2的使用

    若系统没有加载cgroup2文件系统,需要执行下面这条命令

    2024年02月06日
    浏览(31)
  • 浅谈日常使用的 Docker 底层原理-三大底座

    适合的读者,对Docker有过简单了解的朋友,想要进一步了解Docker容器的朋友。 回想我这两年,一直都是在使用 Docker,看过的视频、拜读过的博客,大都是在介绍 Docker 的由来、使用、优点和发展趋势,但对于 Docker 底层到底是如何实现,却是没有提起太多 ,当然也是我太菜啦

    2024年02月11日
    浏览(34)
  • docker 的整体架构及各模块组件 《深入docker底层原理》

    Docker 是一个 C/S 模式的架构,后端是一个松耦合架构,模块各司其职。 1、用户是使用 Docker Client 与 Docker Daemon 建立通信,并发送请求给后者。 2、Docker Daemon 作为 Docker 架构中的主体部分,首先提供 Docker Server 的功能使其可以接受 Docker Client 的请求。 3、Docker Engine 执行 Docke

    2024年02月12日
    浏览(32)
  • C#学习笔记--foreach循环是怎么遍历容器的?实战带你弄懂foreach原理

    上篇文章我们了解了 IEnumerable 和 IEnumerator C#学习笔记–由浅至深理解IEnumerable和IEnumerator 这篇文章我们来研究 foreach 循环 foreach 循环实际上是通过调用集合的 GetEnumerator 方法来获取一个枚举器,然后在每次迭代中调用枚举器的 MoveNext 方法来遍历集合的。当枚举器的 MoveNext 方

    2024年02月03日
    浏览(26)
  • docker在k8s容器中的作用,以及docker的底层原理,以及k8s的常用命令

        Docker的设计思想就是创建软件程序可移植性的轻量级容器,让其可以在任何安装了Docker的机器上,不用关心底层操作系统,就可以运行开发程序,就像集装箱一样使用。 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。 Docker 可以让开发者打包他们

    2024年04月27日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包