docker源码阅读笔记-github配置及代码提交操作

   这片博文属于Github操作经验及技巧的记录,通过向github提交docker源码的研究纪录一点github操作的技巧和经验,这对以后对个人github上代码的管理和提交也很有帮助,适用于一些github初学者,做一些简单的代码管理。(通过这段时间博文的不断更新,本小博主发现越来越喜欢更新博文了,虽然这样会拖慢学习进度,但实际上从长远看来,对于个人的学习仓库的建立还是很有帮助的,而从短时间来看,将博文和研究学习结合在一起,非常有助于整理思路和积累技巧,当我在研究过程中需要使用工具,或者有一点自己的整体框架上的思考,博文的纪录会给我一种非常安心的感觉,就像这些学习到的知识确确实实的被我占有了一样,好了,废话不多说,先完成这篇博文的编写吧)

      我先从整体上整理一下我这篇博文需要纪录的操作过程:

      1.安装好所需要的软件及工具

      2.为提交代码配置git工具

      3.提交代码所需的一些常用git命令操作

      4.与docker相关的操作,删除容器,启动容器,修改源码,运行测试用例(单元测试,集成测试等)

  

   一.安装所需的软件及工具

       (1)注册一个github账号。这里自行注册

       (2)安装git命令,sudo apt-get install git

         (3)   安装make命令,sudo apt-get install make

       (4)安装或升级Docker,Docker的安装自行去Docker官网上去一步步安装,我的安装过程如下:

docker源码阅读笔记-github配置及代码提交操作_第1张图片


  二. 为提交代码配置git工具

         (1)为Docker源码在github上创建分支(fork)并将源码下载(clone)到本地

                  创建分支:首先打开浏览器登录github帐号,然后进入docker/docker仓库进入如下页面,点击一下Fork按钮:

                             docker源码阅读笔记-github配置及代码提交操作_第2张图片

               之后在你的github账户下就有一个docker的分支目录YourAccount/docker  ,即docker源码,随后复制该fork分支的clone Url如下

                   docker源码阅读笔记-github配置及代码提交操作_第3张图片


        再通过如下命令行顺序将docker源码copy到本地来:

        cd ~

        mkdir repos

        cd repos

        git clone +(你之前复制的分支Url)

        cd docker-fork

      恭喜你成功进入docker_fork源码目录了~

    (2)设置你的git签名信息用于远程提交代码

         当你想要修改你的分支中的源码的时候,你希望能和其他人在docker/docker这个仓库中所作的修改和变动同步,为了使得同步更简单,你也会添加一个远程命令upstream指向docker/docker ,由于Docker不接受任何匿名的代码提交,所以我们需要配置名称和邮箱等个人信息。

         cd docker-fork

         git config --local user.name "FirstName LastName "

         git config --local user.email "[email protected]"

         git remote add upstream https://github.com/docker/docker.git   //设置本地仓库跟踪源码主线的改动

       检查设置完毕的信息:

        docker源码阅读笔记-github配置及代码提交操作_第4张图片



       (3)创建分支并将这个分支提交

                cd  docker-fork

                git checkout -b dry-run-test  //创建一个目录并进入到这个目录

                git branch  //验证你是否在这个分支里面

                    *dry-run-test //*表示正在该目录分支下

                     master

                 touch TEST.md //在该分支创建一个文件,然后在这个文件通过vim工具随便写点内容,然后保存退出

                 git status //检查分支状态如下图

                     On branch dry-run-test

          Untracked files:

            (use "git add ..." to include in what will be committed)

            TEST.md

         nothing added to commit but untracked files present (use "git add" to track)       

               git add TEST.md   //阶段性的添加,还没有真正提交

               git commit -s -m "your message about your changes" // 填写提交代码改动的相关备注

               最后一步提交代码:

                 docker源码阅读笔记-github配置及代码提交操作_第5张图片

           操作完成后即可在你的github账户中的docker-fork目录下查找dry-run-test目录及该目录下的TEST.md文件,即提交成功。

     三.启动开发环境的容器并尝试修改源码

          (1)先删除原有的容器和镜像

                 docker rm $(docker ps -a -q)//删除

                 docker images//验证

          (2)运行一个开发环境下的容器 

                 cd ~/repos/docker-fork

                 git checkout dry-run-test //确保我在dry-run-test分支下

                 make BIND_DIR=.shell //使用make命令构建一个开发环境镜像并将它运行在一个容器当中

                 

         docker run --rm -i --privileged -e BUILDFLAGS -e KEEPBUNDLE -e DOCKER_BUILD_GOGC -e DOCKER_BUILD_PKGS -e DOCKER_CLIENTONLY -e DOCKER_DEBUG -e DOCKER_EXPERIMENTAL -e DOCKER_GITCOMMIT -e DOCKER_GRAPHDRIVER=devicemapper -e DOCKER_INCREMENTAL_BINARY -e DOCKER_REMAP_ROOT -e DOCKER_STORAGE_OPTS -e DOCKER_USERLANDPROXY -e TESTDIRS -e TESTFLAGS -e TIMEOUT -v "home/ubuntu/repos/docker/bundles:/go/src/github.com/docker/docker/bundles" -t "docker-dev:dry-run-test" bash

                    //这个命令就是在dry-run-test目录下构建一个镜像并运行该容器,并且该容器内部安装有docker                 

                该命令执行后,我们会进入该容器环境目录如下

root@f31fa223770f:/go/src/github.com/docker/docker#

                 通过ls命令我们依然可以看到docker源码目录,然后编译docker命令二进制文件,并将该二进制文件cp到usr/bin/目录下。

                 将上述容器环境的目录下执行:

                 hack/make.sh binary

cp bundles/1.12.0-dev/binary-client/docker* /usr/bin/

cp bundles/1.12.0-dev/binary-daemon/docker* /usr/bin/

                 现在就可以直接使用docker命令了

                 docker daemon -D&  //-D表示debug模式,&表示后台运行

                 hack/make.sh binary install-binary run // 这个命令会使得run这个命令自动执行build ,install,run三个命令

                 docker run hello-world  成功运行即可

         (3)尝试修改docker源码

                 到这里你已经成功在docker-fork/dry-run-test目录下构建了一个开发环境的容器,并且该容器里面运行着docker,含有docker源码,并可以执行docker的二进制命令文件。

                 当我们在docker-fork目录下所做的docker源码的修改,想要它与开发环境容器中的docker源码同步并运行测试,需要经历以下几步:

                 首先我们要确定我们在docker-fork目录环境下                 

                 make shell //这是将我本地的docker源码仓库(也就是docker-fork)挂载到开发环境docker容器中

                 打开

cli/command/container/attach.go文件

                 做如下修改:

flags.BoolVar(&opts.noStdin, "no-stdin", false, "Do not attach STDIN")

|修改为下面的内容

flags.BoolVar(&opts.noStdin, "no-stdin", false, "Do not attach STDIN (standard in)")

                     保存退出后执行

                     进入我们的开发环境的容器重新编译docker二进制文件:

                     hack/make.sh binary

cp bundles/1.12.0-dev/binary-client/docker* /usr/bin/

cp bundles/1.12.0-dev/binary-daemon/docker* /usr/bin/

                    然后执行docker attach --help就会出现如下信息docker源码阅读笔记-github配置及代码提交操作_第6张图片

                 至此我们已经可以成功的创建github环境的配置及代码提交操作包括docker源码的修改测试等全部流程,此后,我们再慢慢阅读docker源码,尝试根据自己的需求去做特定的修改,然后提交至github,为docker开源社区做出我们的贡献~                   

你可能感兴趣的:(docker源码阅读笔记)