对于开源项目阅读元源码似乎不可避免。开始网上看了下,有没有相关分析文章。搜了下,发现 孙宏亮写了《Docker源码分析》系列文章,但是是基于docker1.2.0的,而我git的是最新的1.12.1。想来也有参考性,就继续下去。按着《Docker源码分析(二):Docker Client创建与命令执行》,docker客户端和daemon服务端都是通过docker命令启动的,通过不同参数区分启动客户端还是服务端,函数入口在:
./docker/docker/docker.go。但是找了下并不对;说明v1.12.1已经跟1.2.0在main入口已经不一样。后来直接grep下了发现在./docker/cmd/docker/docker.go和./docker/cmd/dockerd/docker.go都有main入口函数。然后编译安装完成后有两个命令docker和dockerd,代表的就是客户端和服务端。找到入口函数,后面再慢慢看吧...
另外,发现dockerd只能本地访问,查了下,找到下面答案:
# vim /etc/default/docker
DOCKER_OPTS="-H unix:///var/run/docker.sock -H 0.0.0.0:8090"
# service docker restart重启下服务,这样就可以通过8090端口远程访问,同时本地访问也没问题。
docker -H IP:8090 images
本文探讨了Docker源码的阅读方法,并分享了作者在分析Docker v1.12.1源码过程中的发现。文章介绍了Docker客户端和服务端的启动方式,以及如何通过配置使dockerd支持远程访问。
1427

被折叠的 条评论
为什么被折叠?



