Docker学习笔记

之前一直在学习关于docker的一些知识,但是直到最近关注gitbook才开始真正应用docker的快速构建。

观念的改变

Docker本质上是构建一个虚拟容器,不能以虚拟机的思路去考虑。

例子

这是我上一篇博客使用的Dockerfile,左边是最终版,右边是初版

基源的选择

最明显的区别是,最终版使用的基镜像是 node , 而初版使用的基镜像是 centos ,也就是直接从虚拟机的方向开始。

依赖的烦恼

初版

1
2
3
4
5
RUN yum -y install epel-release 
RUN yum -y install nodejs npm
RUN yum -y install gcc gcc-c++ automake autoconf libtool make
RUN npm install -g node-gyp
RUN npm install gitbook-cli -g && gitbook -V

最终版

1
RUN npm install gitbook-cli -g && gitbook -V

效率高下立见,因为最终版是直接基于node官方镜像构建容器的,所以直接免去了安装node这些依赖类之间的烦恼

总结

不得不说,避免掉这些问题。
docker的确是对于开发者的一大利器,因为需要测试的时候只要直接秒级构建一个容器,就能去测试相应的服务,同时出现问题的时候,连回滚都不用,直接rm掉,然后挂载一个本地的卷又能够马上上线一个新的测试环境。