Technology and experience learned from THE DOCKER BOOK 1
前言
纵观IT行业历史,大的技术变革从来不是诞生于大厂商口中的金蛋,而是一小撮爱好者的小玩意儿,而Docker正是这个路子。 ——赵鹏,Hyper投资人
技术改变世界,科技成就未来。
THE DOCKER BOOK(书籍直译:第一本Docker书 澳 James Turnbull著)
- 博文内容来自该书中的上手体会,本人将技术记录并分享 。
- 博文将教会你简单的入门docker,并使用 docker gitlab等工具 构建Laravel项目各环境,达到提交代码 则自动部署的效果。
为什么使用Docker?
- Docker 是可移植(跨平台)的,它可以在各主流系统上使用。Java可以做到“一次编译,到处运行”,而Docker则可以称为“构建一次,在各平台上运行”。从这一点可以毫不夸张的说,Docker是革命性的,它重新定义了软件开发、测试、交付和部署的流程。我们交付的不再只是代码、【配置文件、数据库定义等,而是整个应用程序运行环境:“OS+各种中间件、类库、应用程序代码”
- 无论你是开发人员、测试人员还是运维人员,随着对Docker越来越深入的了解,你都会爱上他。我们只需要运行几条docker run就可以配置好开发环境,通过Dockerfile或者Docker Hub与他人分享我们的镜像,与其他服务集成,进行开发流程的自动化。
Docker提供一个简单、轻量的建模方式
- Docker上手非常快,用户只需几分钟,就可以把最近的程序Docker化(Dockerize)。
Docker 依赖于“写时复制”(copy-on-write)模型,使修改应用程序也非常迅速,可以说达到了“随心所至,代码即改”的境界。 - 大多数docker容器只需不到一秒钟即可启动。由于去除了管理程序的开销,Docker容器拥有很高的性能,同时同一台宿主机中也可以运行更多的容器,使用户可以尽可能充分地利用系统资源。
我们走在容器化的大道上
- 开发工程师开发、提交代码到代码服务器(github、gitlab等)。
- 代码服务器通过webhook调用CI/CD服务,如Codeship、Shippable、CircleCi等 博文推荐使用gitlab的 CI/CD 。
- CI服务器下载最新代码,构建Docker镜像,并进行测试。
- 自动集成测试通过后,就可以将之前构建的镜像推送到私有Registry。
- 运维使用新版本的Docker镜像进行部署(配置后,完全可以实现,推送代码,立即测试,测试完成,合并代码,按照分支立即发布正式或者测试环境)。
试想一下这种开发流程是不是很酷?除了工作流程的自动化之外,还能消除线上线下环境不一致导致的问题。以后“在我的机器上运行的好好的”这种托词应该再也没人相信了吧。
下一章,将会阐述以下内容
- 安装Docker (windows的安装方式可以参照本人文章https://learnku.com/articles/43313)
- 尝试使用Docker容器
本作品采用《CC 协议》,转载必须注明作者和本文链接
写的好啊,佬