docker源码阅读笔记(一)---- docker的入口

# docker源码的入口
位置  /docker/docker/docker.go

# 主要步骤:
## 初始化一个进程reexec.Init 

## 基于操作系统平台,设置终端仿真,设置标准输入输出,和错误。
stdin, stdout, stderr := term.StdStreams()

## 将clientFlags 标志位,commonFlags标志位合并到flag.CommandLine中,再对flag标志为进行解析,

## 根据标志位的bool(flVersion 和 flHelp)值,输出version 和 help信息

## 初始化一个cli实例,以DockerCli和daemonCli为参数,daemonCli是一个cli.Handler事件处理器。

## 将刚刚创建的cli实例 c.Run(flag.Args()...) run起来。在run这个方法当中,通过解析参数,用反射机制来找到需要被客户端执行的方法method := reflect.ValueOf(c).MethodByName(methodName)

你可能感兴趣的:(docker)