golang的docker,学习学习!
docker可以用docker build出来
常用docker命令:
docker pull
docker run
docker -d
main函数的分析:
1. 很多的flag函数,parse命令行,获取参数选择执行的程序
flVersion 获取版本
bridge 猜测可能是桥接
flDebug debug开关
flDaemon 开启后台进程,这个是很多命令的前提
其他命令
2. deamon的过程
a. os.Geteuid() &runtime.GOOS必须是root & linux
b. flag.NArg()不能有多余参数
c. 设置TMPDIR 环境变量
d. 设置root目录 root := *flRoot;realRoot=root
e. 启动一个engine并注册builtins.Register(eng)
f. 设置eng的参数
g. 启动run 一个server的job
h. 启动run一个serveapi的job
3. client端
a. 获取addr,strings.SplitN(flHosts.GetAll()[0],"://",2)
b.对tlsConfig做配置
c.client.NewDockerCli创建一个cli的struct,
cli=client.NewDockerCli(os.Stdin,os.Stdout,os.Stderr,protoAddrParts[0],protoAddrParts[1],&tlsConfig)
d.对命令行参数做parse做转义,最后一步,开始执行
cli.ParseCommands(flag.Args()...) //这里的...将切片打散