Docker火了有一段时间了,越来越多的公司使用Docker部署环境,作为测试,了解一些这方面的知识也越来越有必要。

可以配合Kubernetes(简称k8s)一起来学习。

诞生背景

一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。 作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题, 特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员都是考验。 Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案。

环境配置如此麻烦,换一台机器,就要重来一次,费力费时。 很多人想到,能不能从根本上解决问题,软件可以带环境安装? 也就是说,安装的时候,把原始环境一模一样地复制过来。 开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。

开发需要清楚的告诉运维部署团队,用的全部配置文件+所有软件环境。 不过,即便如此,仍然常常发生部署失败的状况。 Docker镜像的设计,使得Docker得以打破过去"程序即应用" 的观念。 透过镜像将作业系统核心除外,运作应用程式所需要的系统环境, 由下而上打包,达到应用程序跨平台间的无缝接轨运作。

Docker简介

Docker是一个开源软件项目,用go语言开发的。

Docker可以让开发者打包他们的应用以及所有的依赖包到一个轻量级、可移植的容器中

Docker打包好了容器,可以发布到任何流行的Linux机器上,也可以实现虚拟化

容器是完全使用沙箱机制,相互之间不会有任何接口

Docker容器性能开销极低(关键优势)

Docker从17.03版本之后分为CE(社区版)和EE(企业版),一般用社区版就可以

Docker使用C/S(客户端-服务器)架构模式,使用远程API来管理和创建Docker容器

Docker与传统VM的对比

特性

Docker

传统VM

启动速度

秒级

分钟级

计算能力损耗

几乎无

损耗50%左右

性能

接近原生

弱于

系统支持量(单机)

上千个

几十个

隔离性

资源限制

完全隔离

Docker 拥有的众多优势与操作系统虚拟化的特点是分不开的

  1. 传统虚拟机需要有额外的虚拟机管理程序和虚拟机操作系统层
  2. 而 Docker 容器是直接在操作系统层面之上实现的虚拟化

docker搭建java测试环境 基于docker 搭建测试环境_docker

Docker在测试中的应用场景

1.自动化测试的持续集成、发布

2.使用Docker实现开发人员的开发环境、测试人员的测试环境、运维人员的生产环境的一致性。

大家在工作中肯定经常听到程序说过‘我本地是好的啊,咋到你这出问题了?’

Docker技术就可以解决这一问题。

docker搭建java测试环境 基于docker 搭建测试环境_软件测试_02

docker组成

镜像:可以理解为python里面类的概念,是静态的,一般不会直接使用

容器:是通过镜像创建的,相当于python中实例的概念,是动态的,可访问

仓库:存放镜像的地儿

宿主机:docker安装在哪个机器上,那个机器就是宿主机

部署docker

我是买了一个腾讯云服务器用来学习和练习,大家也可以用虚拟机进行练习。

用xshell连接云服务器

官网下载有些麻烦,大家可以直接公众号后台回复‘xshell’,获取Xshell7的安装包,傻瓜式安装就好了。

点击左上角新建会话,把云服务器的ip地址填进去,端口一般是默认的22,然后输入用户名/密码就连接成功了。

docker搭建java测试环境 基于docker 搭建测试环境_容器_03

接下来开始部署docker

系统:centos 8.0

1.查看内核版本

uname -r

docker搭建java测试环境 基于docker 搭建测试环境_容器_04

注意:内核版本需要不小于3.10,不然docker起不来

2.安装docker依赖包

yum install -y yum-utils lvm2 device-mapper-persistent-data

docker搭建java测试环境 基于docker 搭建测试环境_软件测试_05

我这之前已经安装好了。

3.配置docker源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

docker搭建java测试环境 基于docker 搭建测试环境_软件测试_06

4.安装docker

查看所有仓库中所有docker版本

docker搭建java测试环境 基于docker 搭建测试环境_容器_07

docter安装:yum -y install docker-ce

docker搭建java测试环境 基于docker 搭建测试环境_docker_08

时间略长,等待完成即可。

5.启动docker

service docker start

docker搭建java测试环境 基于docker 搭建测试环境_docker搭建java测试环境_09

6.验证下

执行:sudo docker run hello-world

docker搭建java测试环境 基于docker 搭建测试环境_软件测试_10

这就说明我们的docker部署好了。很快很easy。

下一篇再介绍docker常用的指令、镜像的创建与操作、容器的创建与操作等内容(我还不会,学完再写)