2分钟了解docker

环境问题的罗列
测试环境的管理一直是测试人员关注的焦点之一,非独立的测试环境造成对测试的一系列困扰,当团队过多时测试环境的资源开销也会带来诸多成本,这些问题包括:
1.数据独立:测试人员之间数据的干扰;
2.环境独立:多分支并行开发,无法快速配置一套相同的环境;无法满足特定场景下的分布式环境;
4.bug定位:开发与测试环境不一致,导致双方复现问题的沟通成本提高;
5.自动化测试/联调测试:对于自动化或联调时缺乏稳定的测试环境;
6.上线问题:代码漏上、环境配置不一致,搭建高成本的准生产环境;
7.测试成本:每搭建一套环境都要耗费人力精力、新的硬件资源开销;

docker的解决方案
1.测试:Docker 很适合用于测试发布,RD和FE同学可以将 Docker 封装后可以直接提供给测试人员进行运行,不再需要测试人员与运维、开发进行配合,进行环境搭建与部署。
2.测试数据分离:在测试中,经常由于测试场景变换,需要修改依赖的各种DB数据。Docker可以很容易的将这些数据分离到不同的镜像中,根据不同需要随时进行切换。
3.易于问题复现:开发与测试同样配置的环境,再不会出现以环境差异而被拒绝的bug;同时新人到岗时也能迅速建立开发、编译环境。
4.扩展及迁移服务:根据业务请求的情况随时增加和减少容器的运行数量,随需应变。结合ceph快速实现秒迁;
5.其他:以前鼓捣新东西搭个环境费死劲,从公共仓库拉一个吧,也许几分钟就能解决啦;

docker时代的环境管理
经过改造后,软件的开发与上线流程将发生什么样的变化?开发可以将代码、dokcer的构建文件一起推送到代码仓库中,CI服务将根据这些文件构建出镜像,测试人员通过拉取镜像进行测试、上线。不多解释,图解如下:

原文地址:http://blog.51cto.com/11959825/2068004

时间: 2024-10-31 02:46:16

2分钟了解docker的相关文章

三分钟掌握docker基本指令

一下内容是我用markdown编辑的,所以排版不是太ok~ # Docker ## 1.核心概念 docker主机(Host):安装了docker程序的机器.docker直接安装再操作系统上. docker客户端(Client):连接docker主机进行操作. docker仓库(Registry):软件打包好的镜像:放在docker仓库中: docker容器(Container):镜像启动后的实例称为一个容器:容器是独立运行的一个或一组应用. ##2.在linux上安装docker(centos

docker技术剖析--docker资源限制及应用总结

防伪码:有花堪折直须折,莫待无花空折枝. 一.本文将介绍 cgroup 如何做到内存,cpu 和 io 速率的隔离 本文用脚本运行示例进程,来验证 Cgroups 关于 cpu.内存.io 这三部分的隔离效果. 测试机器环境(docker 1.12版本) 启动 Cgroups systemctl enable cgconfig.service systemctl start cgconfig.service 执行 mount 命令查看 cgroup 的挂载点 从上图可以看到 cgroup 挂载在

docker技术剖析--docker资源限制及应用总结 for centos7.2

http://hongge.blog.51cto.com/ Docker(linux container)所依赖的底层技术 1 Namespace 用来做容器的隔离,有了namespace,在docker container里头看来,就是一个完整的linux的世界.在host看来,container里的进程,就是一个普通的host进程,namespace提供这种pid的映射和隔离效果,host承载着container,就好比一个世外桃源. namespace包括:pid namespace.pi

docker-1 初识docker

五分钟认识docker 什么是docker? 把他想象成一个用了一种新颖方式实现的超轻量虚拟机,在大概效果上也是正确的.当然在实现的原理和应用上还是和VM有巨大差别的,并且专业的叫法是应用容器(Application Container). 为啥要用docker? 那么应用容器长什么样子呢,一个做好的应用容器长得就好像一个装好了一组特定应用的虚拟机一样.比如我现在想用MySQL那我就找个装好MySQL的容器,运行起来,那么我就可以使用 MySQL了. 那么我直接装个 MySQL不就好了,何必还需

八个Docker的真实应用场景

1.简化配置 这是Docker公司宣传的Docker的主要使用场景.虚拟机的最大好处是能在你的硬件设施上运行各种配置不一样的平台(软件.系统),Docker在降低额外开销的情况下提供了同样的功能.它能让你将运行环境和配置放在代码中然后部署,同一个Docker的配置可以在不同的环境中使用,这样就降低了硬件要求和应用环境之间耦合度. 2. 代码流水线(Code Pipeline)管理 前一个场景对于管理代码的流水线起到了很大的帮助.代码从开发者的机器到最终在生产环境上的部署,需要经过很多的中间环境.

docker资源限制和应用总结

Docker(linux container)所依赖的底层技术 1 Namespace 用来做容器的隔离,有了namespace,在docker container里头看来,就是一个完整的linux的世界.在host看来,container里的进程,就是一个普通的host进程,namespace提供这种pid的映射和隔离效果,host承载着container,就好比一个世外桃源. namespace包括:pid namespace.net namespace.ipc namespace.mnt

docker 资源限制以及应用的总结

一.Docker(linux container)所依赖的底层技术(隔离技术) 1 Namespace 用来做容器的隔离,有了namespace,在docker container里头看来,就是一个完整的linux的世界.在host看来,container里的进程,就是一个普通的host进程,namespace提供这种pid的映射和隔离效果,host承载着container,就好比一个世外桃源. namespace包括:pid namespace.net namespace.ipc namesp

Docker入门与应用系列(一)介绍和部署

Docker介绍 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口. Docker是Docker.inc公司开源的一个基于LXC技术之上构建的Container容器引擎,源代码托管在GitHub上,基于Go语言并遵从Apache2.0协议开源(可以商业). Docker项目的目标是实现轻量级的操作系统虚拟化解决方案. Docker是通过内核虚

Docker: 基础介绍及配置安装 [一]

一.Docker介绍 Docker是Docker.lnc公司开源的一个基于LXC技术之上构建的Container容器引擎,源代码托管在Github上,基于Go语言并遵从Apache2.0协议开源 Docker是通过内核虚拟化技术(namespaces及cgroups等)来提供容器的资源隔离与安全保障等.由于Docker通过操作系统层的虚拟化实现隔离,所以Docker容器在运行时,不需要类似虚拟机(VM)额外的操作系统开销,提高资源利用率 二.Docker的三大理念 构建 运输 运行 Docker