本文首发在个人博客上(Docker 面试题汇总(附答案)),欢迎来踩!
建议和这篇一起观看,更加全面一些:万字总结!Docker简介及底层关键技术剖析
1. Docker 和 LXC 有什么区别?
LXC是在Linux上相关技术实现的容器,docker则在如下的几个方面进行了改进:
1、移植性:通过抽象容器配置,容器可以实现一个平台移植到另一个平台。
2、镜像系统:基于AUFS的镜像系统为容器的分发带来了很多的便利,通是共同的镜像层只需要存储一份,实现高效率的存储。
3、版本管理:类似于GIT的版本管理理念,用户可以更方便的创建、管理镜像文件。
4、仓库系统:仓库系统大大降低了镜像的分发和管理的成本。
5、周边工具:各种现有的工具(配置管理、云平台)对docker的支持,以及基于docker的pass、Cl等系统,让docker的应用更加方便和多样。
2. Docker 容器有几种状态?
四种状态:运行、已停止、重新启动、已退出。
3. Docker 有哪些优缺点?
docker优点
1、部署方便
你一定还有印象,在我们最开始学习编程的时候,搭建环境这一步往往会耗费我们好几个小时的时间,而且其中一个小问题可能需要找很久才能够解决。你还会得到关于环境搭建方面的团队其他成员的求助。而有了容器之后,这些都变得非常容易,你的开发环境就只是一个或者几个容器镜像的地址,最多再需要一个控制部署流程的执行脚本。或者进一步将你的环境镜像以及镜像脚本放入一个git项目,发布到云端,需要的时候将它拉到本地就可以了。
2、部署安全
当我们收到一个bug反馈的时候,很多时候心里面的第一反应一定是“我本地是好的啊”!这种情况的发生就在于环境的不一致,我们在开发过程中的调试往往不能保证其他环境的问题,但是我们却要为此买单,这真是一件令人苦恼的事情。有了容器之后,这将很少发生。我们可以通过容器技术将开发环境和测试环境以及生产环境保持版本和依赖上的统一,保证代码在一个高度统一的环境上执行。而测试环境的统一,也同样能解决CI流程对环境的要求。
3、隔离性好
不管是开发还