Docker
文章平均质量分 89
张忠琳
我就是我 不用在怀疑
展开
-
【containerd 源码分析】containerd image pull 源码分析
本文分析 containerd pull 镜像的分析过程,包括 ctr image 命令行以及 containerd daemon 执行 过程,也包含镜像 metadata,content 等内容。1. 执行如下命令 ctr image pull 首先分析 ctr 命令,实现在 cmd/ctr 的子命令 listCommand 实现,利用 GRPC 链接到 remote cotainerd 端请求,使...原创 2022-02-08 15:56:00 · 3598 阅读 · 0 评论 -
【containerd 源码分析】containerd image list 源码分析
本文分析 containerd 列出所有镜像的分析过程,包括 ctr image 命令行以及 containerd daemon 执行 过程,也包含镜像元素据,content 等原理。1. 执行如下命令 ctr images list 首先分析 ctr 命令,实现在 cmd/ctr 的子命令 listCommand 实现,...原创 2022-02-08 09:22:50 · 4036 阅读 · 0 评论 -
【runc 源码分析】runc create / start 流程分析
命令行COMMANDS: checkpoint checkpoint a running container create create a container delete delete any resources held by the container often used with detached container ...原创 2017-08-06 14:41:22 · 6959 阅读 · 0 评论 -
【docker基础知识】docker基础概念
1. docker 分层概念 linux操作系统由内核空间和用户空间组成。内核空间:kernel,Linux 刚启动时会加载 bootfs 文件系统,之后 bootfs 会被卸载 用户空间:文件系统是 rootfs,包含 /dev, /proc, /bin 等 对与基础镜像,底层直接使用 Host 的 kernel,而自己只需要提供 rootfs 。 容...原创 2017-07-26 11:04:01 · 5072 阅读 · 0 评论 -
【docker安装与配置】docker安装与私有仓库安装
参考: https://github.com/docker-library/mysql/blob/master/5.6/docker-entrypoint.shhttps://yeasy.gitbooks.io/docker_practice/content/repository/local_repo.html下载已有镜像:sudo yum -y install原创 2017-03-15 11:52:09 · 4250 阅读 · 0 评论 -
【docker安装】docker安装与部署
docker在centos中的安装与部署yum list docker-ce --showduplicates | sort -ryum update3.配置docker镜像源tee /etc/yum.repos.d/docker.repo <<-'EOF'[dockerrepo]name=Docker Repositorybaseurl=https://y...原创 2016-08-17 20:05:36 · 4275 阅读 · 0 评论 -
work——内容
1.登陆Xeniumd Build Server, 选择root.2.切换到xeniumd-api编译目录cd /export/Deploy/xeniumd./xeniumd.sh develop -test3.检查http://.18.138.56/x86_64/这个网站是否有xeniumd-api-alpha包cat xeniumd_version与cat xeniumd_vers...原创 2015-07-06 10:44:38 · 4756 阅读 · 1 评论 -
【docker API】docker client go 之image接口
1 docker client 创建func NewClient(server, port, version string) (*client.Client, error) { host := "tcp://" + server + ":" + port return client.NewClient(host, version, nil, map[string]string{"Con...原创 2018-06-14 20:10:26 · 6477 阅读 · 1 评论 -
【Docker 基础知识】存储驱动overlay和overlay2
OverlayFS是一个类似于AUFS 的现代联合文件系统,更快实现简单。OverlayFS是内核提供的文件系统,overlay和overlay2是docker的存储驱动设置存储驱动方法{ "storage-driver": "overlay", "storage-opts": [ "xxxxxxxx" ]}1 overlay介绍 1.1 ov...原创 2018-07-09 15:15:14 · 23320 阅读 · 0 评论 -
【docker基础知识】docker坑问题汇总
1.Got starting container process caused "process_linux.go:301: running exec setns process for init caused \"exit status 40\"": unknown. from time to time 解决问题:https://github.com/opencontainers/r...原创 2018-12-25 20:51:54 · 28571 阅读 · 0 评论 -
【runc 源码分析】runc spec 流程分析
DESCNAME: docker-runc spec - create a new specification fileUSAGE: docker-runc spec [command options] [arguments...]DESCRIPTION: The spec command creates the new specification file nam...原创 2019-01-17 14:07:52 · 2278 阅读 · 0 评论 -
【runc 源码分析】runc init 流程分析
根据官方定义:runC是一个根据OCI(Open Container Initiative)标准创建并运行容器的CLI tool 容器的工业级标准化组织OCI(Open Container Initiative)出炉,这是业界大佬为避免容器生态和docker耦合过紧做的努力,也是docker做出的妥协 随着docker等容器引擎自身功能越来越丰富,其逐渐呈现出组件化的趋势(将底层交...原创 2019-01-16 09:59:52 · 4667 阅读 · 0 评论 -
【docker 17 源码分析】 Docker 镜像源码分析
Docker的graph driver主要用于管理和维护镜像,包括把镜像从仓库下载下来,到运行时把镜像挂载起来可以被容器访问等目前docker支持的graph driver有:Overlay Aufs Devicemapper Btrfs Zfs VfsDocker镜像概念rootfs: 容器进程可见的文件系统、工具、容器文件等 Union mount:多...原创 2019-03-07 16:59:29 · 2922 阅读 · 0 评论 -
【runc 源码分析】cgroup 源码分析
1 Manager 接口 libcontainer/cgroups/cgroups.go 中接口 Manager 定义了操作 cgroup 的方法type Manager interface { // Applies cgroup configuration to the process with the specified pid Apply(pid int) erro...原创 2017-08-15 10:28:37 · 4748 阅读 · 1 评论 -
【runc 源码分析】container namespace 源码分析
1 Config libcontainer/configs/config.go 中结构体 Config 中使用 namespace,Config 为在容器环境中执行进行定义了配置选项// Config defines configuration options for executing a process inside a contained environment.ty...原创 2017-08-14 17:36:46 · 4194 阅读 · 0 评论 -
【docker 17 源码分析】docker pull image 源码分析
一. Image主要命令$dockerimages(所有) $dockerimagesjava(所有java) $dockerimagesjava:8(固定tag的jave) $dockerimages--no-trunc(所有id值全长度) $dockerimages--digests(所有镜像带有digest) $dockerimag...原创 2016-12-06 11:23:49 · 9859 阅读 · 1 评论 -
【docker配置】Docker compose
第一章 Docker ComposeCompose是用于定义和运行复杂Docker应用的工具。你可以在一个文件中定义一个多容器的应用,然后使用一条命令来启动你的应用,然后所有相关的操作都会被自动完成。1.1 安装 Compose在安装 Compose之前,你需要先安装好 Docker 。然后你需要使用 curl 指令来安装 Compose。运行下边的命令来安装 Compose:原创 2016-10-26 17:41:56 · 4761 阅读 · 0 评论 -
【docker基础知识】Libcontainer原理
一. Libcontainer概述用于容器管理的包,管理namespaces、cgroups、capabilities以及文件系统来对容器控制。可用Libcontainer创建容器,并对容器进行管理。pivot_root 用于改变进程的根目录,可以将进程控制在rootfs中。如果rootfs是基于ramfs的(不支持pivot_root),那会在mount时使用MS_MOVE标志位加上chro原创 2017-03-20 11:49:53 · 10329 阅读 · 0 评论 -
【docker基础知识】Docker编译源码
docker的编译环境实际上是创建一个docker容器,在容器中对代码进行编译。 如果想快速的查看编译环境搭建指导,而不关注环境搭建的机制和细节,可以直接跳到最后一章“总结”。前提 机器上已经安装了docker,因为编译环境是个docker容器,所以要事先有docker(daemon),后面会创建个编译环境容器,在容器里面编译代码。下载docker源码...原创 2017-07-27 12:10:07 · 9084 阅读 · 1 评论 -
【docker基础知识】docker学习知识
学习任何一个开源新技术,首先问自己几个问题:1. 为什要学习它?2. 学习它需要了解哪些相关知识点?3. 如何快速学习?4. 该技术的使用场景是什么? 为什要学习docker? docker是轻量级虚拟化技术,docker使linux容器技术的应用更加简单和标准化 docker容器启动时毫秒级的 docker将开发和运维职责分清 docker解决了依赖地狱问题 docker...原创 2017-02-03 10:02:28 · 5073 阅读 · 0 评论 -
【docker 底层知识】Linux 内核namespace 原理
mount namespace 隔离文件系统挂载点对隔离文件系统提供支持,/proc/{pid}/mounts,/proc/{pid}/mountstats查看文件设备统计信息,包括挂载文件的名字,文件系统类型,挂载位置等。进程在创建mount namespace时,会把当前的文件结构复制给新的namespace,新namespace中的所有mount操作都只影响自身的文件系统...原创 2017-03-21 14:22:51 · 8811 阅读 · 1 评论 -
【docker 底层知识】cgroup 原理分析
一. cgroup 相关概念解释Cgroups提供了以下功能:限制进程组可以使用的资源(Resource limiting ):比如memory子系统可以为进程组设定一个memory使用上限,进程组使用的内存达到限额再申请内存,就会出发OOM(out of memory) 进程组的优先级控制(Prioritization ):比如可以使用cpu子系统为某个进程组分配cpu sha...原创 2017-03-22 10:38:52 · 19078 阅读 · 0 评论 -
【docker 17 源码分析】 Docker Daemon启动
一. ssss入口代码为cmd/dockerd/docker.go。func main() { if reexec.Init() { return } // Set terminal emulation based on platform as required. _, stdout, stder原创 2017-03-23 18:00:25 · 10282 阅读 · 0 评论 -
【docker 17 源码分析】 Docker Client源码分析
Docker Client源码分析一. Docker Client的创建Docker Client的创建,实质上是Docker用户通过可执行文件docker,与Docker Server建立联系。入口代码docker/cmd/docker.gofunc main() { // Set terminal emulation based on plat原创 2017-03-23 14:30:22 · 4812 阅读 · 0 评论 -
【docker 17 源码分析】docker run container 源码分析一 docker create
第一章 Container create源码分析1.1 NewCreateCommand函数(cli/command/container/create.go) 1.2 ContainerCreate函数(client/container_create.go)创建一个容器在客户端实现是在client/container_create.go这个文件唯一一个函数,传入的参数主要有容原创 2016-12-02 15:53:42 · 7593 阅读 · 3 评论 -
【docker 17 源码分析】 docker run container 源码分析二 docker start
问题:Docker run 来执行一个容器,那么执行 Docker run 之后到底都做了什么工作呢? 首先,用户通过Docker client输入docker run来创建一个容器。Docker client 主要的工作是通过解析用户所提供的一系列参数后,分别发送了这样两条请求: docker create 和 docker start,这篇文章分析 d原创 2017-07-31 14:32:54 · 5017 阅读 · 0 评论