首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏跟我一起学 K8s

    Docker源码解读

    由于github网站速度太慢,可以采用码云上的代码路径: moby:https://gitee.com/mirrors/moby.git 开启Docker学习之路,需要脚踏实地,从源码开始;网上也有一些关于 Docker源码的学习的资料,但是分析的源码都是比较老的版本,所以这里就班门弄斧一下,将自己学习Docker的总结一下,也是方便自己复习; Goland代码配置: 在GOPATH的目录下:src/github.com /docker/: git clone https://gitee.com/mirrors/moby.git 然后在Goland中添加对应的目录:

    1.3K10发布于 2020-04-26
  • 来自专栏程序人生 阅读快乐

    Docker源码分析

    本书是一本引导读者深入了解Docker实现原理的技术普及读物,主要目标是通过对Docker架构和源代码的详细讲解和解剖,帮助读者对Docker的底层实现有一个全面的理解。 作者通过大量的流程图和代码片段对Docker的架构、Docker的重要模块,特别是对Swarm、Machine和Compose这三个模块进行了详细介绍和深度剖析,无论是Docker的使用者还是开发者,通过阅读此书都可以对 Docker有更深刻的理解,能够更好的使用或者开发Docker

    59020发布于 2018-10-10
  • 来自专栏算法之美

    Docker源码分析(一):Docker架构

    文章来源: InfoQ推出了《Docker源码分析》系列文章。 本系列文章从源码的角度出发,详细介绍Docker的架构、Docker的运行以及Docker的卓越特性。本文是Docker源码分析系列的第一篇­­­——Docker架构篇。 1.2 Docker版本信息 本文关于Docker架构的分析都是基于Docker源码Docker相应版本的运行结果,其中Docker为最新的1.2版本。 的源码并不是一个枯燥的过程,反而可以从中理解Docker架构的设计原理。 6 总结 本文从Docker 1.2的源码入手,分析抽象出Docker的架构图,并对该架构图中的各个模块进行功能与实现的分析,最后通过两个docker命令展示了Docker内部的运行。

    2.2K140发布于 2018-04-13
  • 来自专栏AI机器学习与深度学习算法

    学习分类 2-3 感知机

    要如何求出权重向量呢?基本做法和回归时相同,将权重向量用作参数,创建更新表达式来更新参数。这就需要一个被称为感知机的模型。

    71010编辑于 2022-11-08
  • 来自专栏算法无遗策

    动画 | 什么是2-3树?

    2-3树正是一种绝对平衡的树,任意节点到它所有的叶子节点的深度都是相等的。 2-3树的数字代表一个节点有2到3个子树。它也满足二分搜索树的基本性质,但它不属于二分搜索树。 2-3树查找元素 2-3树的查找类似二分搜索树的查找,根据元素的大小来决定查找的方向。 动画:2-3树插入 2-3树删除元素 2-3树删除元素相对比较复杂,删除元素也和插入元素一样先进行命中查找,查找成功才进行删除操作。 2-3树为满二叉树时,删除叶子节点 2-3树满二叉树的情况下,删除叶子节点是比较简单的。 动画:2-3树删除 -----END---

    1.1K10发布于 2020-01-02
  • 来自专栏Kubernetes

    docker volume源码分析

    这是在docker v1.10.3版本的使用过程中,使用convoy 作为volume driver,在一次docker volume remove失败时,使我不得不对docker volume 的源码做一次分析 当时考虑是 docker 缓存没有及时清理的问题,于是得去分析下相关代码。 ##docker volume create源码分析: ? 如果此时,convoy和docker daemon缓存信息不同步,则create操作不能如愿了。 ##docker volume remove源码分析: ? 如果此时convoy 中volume数据和docker daemon 缓存中volume数据不一致,也不会得到纠正。 ##docker volume list源码分析: ? 之后docker再收到删除该volume的请求时,docker会调用convoy删除,而convoy中已经没有这个volume了,于是向docker返回失败的信息,因而docker也返回失败。

    1.5K60发布于 2018-04-13
  • 来自专栏我是攻城师

    什么是2-3

    2-3树 VS 二叉搜索树 同样的一组数据,在2-3树和二叉搜索树里面的对比如下: ? 可以看到2-3树的节点分布非常均匀,且叶子节点的高度一致,并且如果这里即使是AVL树,那么树的高度也比2-3树高,而高度的降低则可以提升增删改的效率。 2-3树的插入 为了保持平衡性,2-3树的插入如果破坏了平衡性,那么树本身会产生分裂和合并,然后调整结构以维持平衡性,这一点和AVL树为了保持平衡而产生的节点旋转的作用一样,2-3树的插入分裂有几种情况如下 2-3树的删除 2-3树节点的删除也会破坏平衡性,同样树本身也会产生分裂和合并,如下: ? 总结 本篇文章,主要介绍了2-3树相关的知识,2-3树,2-3-4树以及B树都不是二叉树,但与二叉树的大致特点是类似的,它们是一种平衡的多路查找树,节点的孩子个数可以允许多于2个,虽然高度降低了,但编码相对复杂

    2.5K20发布于 2019-04-28
  • 来自专栏刷题笔记

    2-3 链表拼接 (20 分)

    本文链接:https://blog.csdn.net/shiliang97/article/details/101050371 2-3 链表拼接 (20 分) 本题要求实现一个合并两个有序链表的简单函数

    79040发布于 2019-11-08
  • 来自专栏golang算法架构leetcode技术php

    golang 源码分析(16):Docker CE 18.03源码

    比如是否设置了"always"呀 ├── runconfig ├── vendor # go的vendor机制 └── volume # volume相关 负责存储配置的一般都叫 xx Store Docker 的设计是单机的,不是分布式的 Docker的设计是Client-Server模式的,平时我们用的docker这个命令被分散到 https://github.com/docker/cli 这个仓库去了 从命令行进入 入口在 cmd/dockerd/docker.go: func newDaemonCommand() *cobra.Command { opts := newDaemonOptions FullTimestamp: true, }) // LCOW: Linux Containers On Windows. ref: https://blog.docker.com 那我们要找一个新的入口点去跟踪 代码,所以我选择 docker run。从 docker/cli 库翻了翻,发现最后是调用 containers/create 这样一个接口。

    69620编辑于 2022-08-02
  • 来自专栏python3

    2-3 选项卡控件

    2-3 选项卡控件 u本节学习目标: n了解选项卡控件的基本属性 n掌握如何设置选项卡控件的属性 n掌握统计页面选项卡控件页面基本信息 n掌握选项卡控件的功能操作控制 2-3-1 简介 在 Windows 一般选项卡在Windows操作系统中的表现样式如图2-3所示。 ? 图2-3 图片框控件的属性及方法 2-3-2 选项卡控件的基本属性 图片框控件是使用频度最高的控件,主要用以显示窗体文本信息。 其基本的属性和方法定义如表2-3所示: 属性 说明 MultiLine 指定是否可以显示多行选项卡。如果可以显示多行选项卡,该值应为 True,否则为 False。 使用这个集合可以添加和删除TabPage对象 表2-3 选项卡控件的属性 2-3-3 选项卡控件实践操作 1.

    2.4K10发布于 2020-01-07
  • 来自专栏python3

    2-3 T-SQL函数

    2-3 T-SQL函数 学习系统函数、行集函数和Ranking函数;重点掌握字符串函数、日期时间函数和数学函数的使用参数以及使用技巧 重点掌握用户定义的标量函数以及自定义函数的执行方法 掌握用户定义的内嵌表值函数以及与用户定义的标量函数的主要区别 我们首先运行一段SQL查询:select tno,name , salary From teacher,查询后的基本结构如图2-3所示。我们看见,分别有三位教师的薪水是一样高的。 图2-3 薪酬排序基本情况 图2-4 row_number函数排序 图2-5 row_number另一使用 我们可以使用Row_number函数来实现查询表中指定范围的记录,一般将其应用到Web应用程序的分页功能上

    2.3K10发布于 2020-01-08
  • 来自专栏机器学习入门

    算法原理系列:2-3查找树

    结构缘由 首先,搞清楚2-3查找树为什么会出来,它要解决什么样的问题?假设我们对它的基本已经有所了解了。先给它来个简单的定义: 2-3查找树: 一种保持有序结构的查找树。 而2-3树就是为了规避上述问题而设计发明出来的模型。现在请思考该如何设计它呢? 这里我们从BST遇到的实际问题出发,提出设计指标,再去思考利用些潜在的性质来构建2-3树。 这部分内容,没有什么理论根据,而是我自己尝试去抓些字典的性质来构建,而2-3树的诞生过程并非真的如此,所以仅供参考。 构建2-3树 字典的两个主要操作为:查找和插入。 我就不卖关子了,直接给出2-3树的其中一个基本定义: 一棵2-3查找树或为一颗空树,或由以下节点组成: 2-节点:含有一个键和两条链接,左链接指向的2-3树中的键都小于该节点,右链接指向的2-3树中的键都大于该节点 3-节点:含有两个键和三条链接,左链接指向的2-3树中的键都小于该节点,中链接指向的2-3树中的键都位于该节点的两个键之间,右链接指向的2-3树中的键都大于该节点。 !!!

    1.2K20发布于 2019-05-26
  • 来自专栏Docker

    Docker】MySQL 源码构建 Docker 镜像(基于 ARM 64 架构)

    Dockerfile 这里需要说明的是,该 Dockerfile 中是通过 yum 安装 mysql 服务,经过实测其指定的 yum 源也未提供 5.7.40 版本的 ARM 64 rpm文件,因此还需要使用源码自行编译生成 附 yum 源地址:https://repo.mysql.com/yum 2、编译源码生成 rpm 2.1、在 ARM 环境安装依赖 yum install -y cmake time libaio-devel zlib-devel \ cyrus-sasl-devel openldap-devel perl-Env gcc gcc-c++ make rpm-build autoconf perl-JSON 2.2、下载源码 -5.7.40-1.el7.src.rpm rpm -ivh mysql-community-minimal-5.7.40-1.el7.src.rpm 2.3、修改源码配置 cd /root/rpmbuild build_configurations/compiler_options.cmake tar -czvf mysql-5.7.40.tar.gz mysql-5.7.40 --remove-files 2.4、编译源码生成

    2.5K10编辑于 2024-09-02
  • 来自专栏golang算法架构leetcode技术php

    golang 源码分析(17):cobra docker

    命令,并且不匹配其它子命令时,则这个根命令将得到执行,也即打印docker命令的用法。 cmd.AddCommand(newDaemonCommand()) 将DaemonCommand添加为根命令的子命令,这样docker daemon命令即可启动docker daemon。 newDaemonCommand函数定义在cmd/docker/daemon_unix.go里。 Client命令行示例 这里我拿一个非常简单的子命令示例,来说明Docker客户端是如何运行的。 上面我仅分析了docker system info的执行过程,其它命令也很类似。

    78430编辑于 2022-08-02
  • 来自专栏along的开发之旅

    使用Docker编译Android系统源码

    安装完成后执行以下命令检查docker版本: $ sudo docker --version 配置Docker < 此步骤可以跳过 > 使用Docker加速器 由于官网在国外,速度不是很理想,因此国内有推出加速服务 原来需要安装 ia32-libs,目前被以下三个库取代) >> $ sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 添加编译Android源码需要的依赖 hours ago 971 MB ubuntu 14.04 b969ab9f929b 5 weeks ago 188 MB 使用镜像编译Android系统源码 1> 准备系统源码 在宿主机上,创建源码目录,如 /home/android 目录,并放入Android系统源码。 2> 挂载源码目录到docker容器中 $ docker run -it -v /home/android:/home/android 49df00985bd1 /bin/bash 3> 开始编译源码

    2.5K10发布于 2019-05-26
  • 来自专栏Docker

    Docker】RocketMQ 源码构建 Docker 镜像(基于 ARM 64 架构)

    如果您有其他想要了解的,欢迎私信联系我~ 背景介绍 接上篇,笔者完成公司 MySQL 适配 ARM 64 架构工作后,马上又着手推进 RocketMQ 适配 ARM 64 架构,同样由于 Docker alias dfimage="docker run -v /var/run/docker.sock:/var/run/docker.sock --rm alpine/dfimage" dfimage - 解决方案是:修改源码中 broker、client、openmessaging、remoting、tools 等 distribution 下的相关源码并重新编译。 4.9.4.tar.gz 2.3、编译源码生成 jar 包 tar -xzvf rocketmq-all-4.9.4.tar.gz cd rocketmq-rocketmq-all-4.9.4 # 修改以下源码文件中的超时时间为 4.9.4.jar ├── rocketmq-rocketmq-all-4.9.4.tgz ├── runbroker-customize.sh └── runserver-customize.sh docker

    1.5K10编辑于 2024-09-02
  • 来自专栏NebulaGraph 技术文章

    使用 Docker 构建 Nebula Graph 源码

    开发环境构建 Nebula Graph 依赖较多,且一些第三方库需本地编译安装,为了方便开发者本地编译项目源码, Nebula Graph 官方为大家提供了一个预安装所有依赖的 docker 镜像。 $ docker pull vesoft/nebula-dev 运行 Docker 并挂载 Nebula 源码目录到容器的 /home/nebula 目录 $ docker run --rm 容器之后,重新键入上述的命令,我们在 vesoft-inc/nebula-dev-docker 中提供了一个简单的 build.sh 脚本,可通过 . 使用 cmake 构建 Nebula 工程 docker> mkdir _build && cd _build docker> cmake .. && make -j2 docker> 修改后,点击 Apply & Restart 按钮, 重启 Docker

    1.2K40发布于 2019-09-06
  • 来自专栏Kubernetes

    docker-monitor-injector源码分析

    1.工具介绍 docker-monitor-injector是携程开源的一个修正docker容器内监控数据的工具,通过劫持open,fopen等linux库函数,重算/proc/meminfo,/proc 下面将对其进行源码分析,并整理出各个数据的监控修正算法。 2.原理 图片描述 ? 3.函数调用关系 ? tot_ticks, rq_ticks); 6.参考项目 https://linuxcontainers.org/lxcfs/introduction/ https://github.com/CtripCloud/docker-monitor-injector

    1.2K90发布于 2018-04-13
  • 来自专栏Kubernetes

    docker stats命令源码分析结果

    本文是基于docker 1.10.3版本的源码,对docker stats命令进行源码分析,看看docker stats命令输出的数据是从cgroups fs中怎么怎么计算出来的。 $ docker stats nginx-test |CONTAINER|CPU % |MEM USAGE / LIMIT|MEM %|NET I/O |BLOCK I/O | |---|---|--- client相关代码入口可参考:/docker/docker/api/client/stats.go#141 docker daemon相关代码入口可参考:/docker/docker/daemon/ daemon.go#1474 ##源码分析结果 ###Cpu数据: docker daemon会记录这次读取/sys/fs/cgroup/cpuacct/docker/[containerId]/cpuacct.usage /blkio/docker/[containerId]/blkio.io_service_bytes_recursive的值返回; 如果没有,就去读取/sys/fs/cgroup/blkio/docker

    3.9K80发布于 2018-04-13
  • 来自专栏golang算法架构leetcode技术php

    golang 源码分析(14)docker NewDaemon

    源码的角度,NewDaemon函数的执行完成了Docker Daemon创建并加载daemon的任务,最终实现统一管理Docker Daemon的资源。 3. NewDaemon源码分析 Docker Daemon中NewDaemon的执行流程主要包含12个独立的步骤:处理配置信息、检测系统支持及用户权限、配置工作路径、加载并配置graphdriver、创建Docker NewDaemon具体实现 在《Docker源码分析》系列第三篇中,有一个重要的环节:使用goroutine加载daemon对象并运行。 Graphdriver用于完成Docker容器镜像的管理,包括存储与获取。 4.4.1. 创建graphdriver 这部分内容的源码位于. 由于在Docker架构中,网络是极其重要的一部分,因此Docker网络篇会安排在《Docker源码分析》系列的第六篇。 4.6.

    1.1K20编辑于 2022-08-02
领券