【docker是一个C/S模式的架构,后端是一个松耦合架构,模块各司其职。
用户是使用Docker Client与Docker Daemon建立通信,并发送请求给后者。
Docker Daemon作为Docker架构中的主体部分,首先提供Server的功能使其可以接受Docker Client的请求;
Engine执行Docker内部的一系列工作,每一项工作都是以一个Job的形式的存在。
Job的运行过程中,当需要容器镜像时,则从Docker Registry中下载镜像,并通过镜像管理驱动graphdriver将下载镜像以Graph的形式存储;
当需要为Docker创建网络环境时,通过网络管理驱动networkdriver创建并配置Docker容器网络环境;
当需要限制Docker容器运行资源或执行用户指令等操作时,则通过execdriver来完成。
libcontainer是一项独立的容器管理包,networkdriver以及execdriver都是通过libcontainer来实现具体对容器进行的操作。】
Docker的源码是保存在github.com上的,目前已经更名为moby。
首先通过之前注册的github的免费账户登录到github,搜索 moby 的仓库,Docker的源码都保存在github上。通过 Fork 功能到当前登录的用户中,方便以后贡献Docker的代码。如果仅仅只为了阅读源代码,可以直接 clone 官方的代码即可,无需进行 fork 操作。如图 5-1-1所示:
在本地创建一个存储Docker源码的路径,用于提交修改的代码:
librant@ubuntu:~/gowork/src/github.com$ mkdir librant
个人建议将创建的目录与账户名称一致。
拉取刚才fork的分支:
librant@ubuntu:~/gowork/src/github.com/librant$ git clone https://github.com/librant/moby.git
代码下载完成后,进入到 moby 目录,设置本地代码仓跟踪远端仓库的修改:
librant@ubuntu:~/gowork/src/github.com/librant/moby$ git remote add upstream https://github.com/moby/moby.git
查询跟踪的远端仓库:
librant@ubuntu:~/gowork/src/github.com/librant/moby$ git remote -v
origin https://github.com/librant/moby.git (fetch)
origin https://github.com/librant/moby.git (push)
upstream https://github.com/moby/moby.git (fetch)
upstream https://github.com/moby/moby.git (push)
当需要向Docker的源码提交修改后的代码时,就需要在新建的分支上修改,分支的名称可以根据具体的修改命名。
创建需要修改代码的分支:
librant@ubuntu:~/gowork/src/github.com/librant/moby$ git checkout -b docker-test
查看创建的分支:
librant@ubuntu:~/gowork/src/github.com/librant/moby$ git branch
* docker-test
master
* 号代表当前的分支
创建新的文件:
librant@ubuntu:~/gowork/src/github.com/librant/moby$ touch docker-test.md
查看当前需要提交的文件:
librant@ubuntu:~/gowork/src/github.com/librant/moby$ git status
红色字体中的文件是还没有添加到暂存区的文件,根据情况添加需要添加到暂存区的文件:
librant@ubuntu:~/gowork/src/github.com/librant/moby$ git add docker-test.md
添加到暂存区的文件将会变成绿色,但是还没有正式提交到分支上,提交到分支上:
librant@ubuntu:~/gowork/src/github.com/librant/moby$ git commit -s -m "Test commit file"
-m : 在提交代码时需要写上此次提交的修改的简要信息
-s : 自动签署git的提交,github是不接受匿名提交
将修改推送到github上:
librant@ubuntu:~/gowork/src/github.com/librant/moby$ git push --set-upstream origin docker-test
推送的过程中需要输入github的账号和密码。
推送成功后,在github上就可以查看当前推送成功的分支。