Docker搭建测试环境及基本操作

软件测试过程中,总会碰到测试环境不够用的尴尬情况。即时有了机器还要经历装系统,配置环境,调试等一系列繁琐的问题。虽然市面上也有一些批处理话的工具(如salt,fabric等),但是还是需要实体机器作为支撑,增大成本。

这里介绍一个可以用虚拟测试环境的软件docker。

更多Docker相关教程见以下内容

Docker 的详细介绍:请点这里
Docker 的下载地址:请点这里

开始安装。

环境是CentOS 6.7。

注:需要sudo或者root权限

1、更新系统,yum -y update,用来更新系统

2、执行如下命令,进行docker的自动安装:wget -qO- https://get.docker.com/ | sh。

如果没有wget命令,请自行yum install wget,然后再执行以上命令

3、service docker start 启动docker服务,并验证是否启动成功

ps -ef | grep docker

4、chkconfig docker on,设置为开机启动

5、执行一个docker pull centos命令,会从hub.docker.com开始下载centos7的最新官方images

docker官方参考资料https://docs.docker.com/linux/

Docker的基本操作

上面文章中最后执行了docker pull centos的指令,经过一段时间的等待,会从hub.docker.com上下载docker官方最新的centos的images,接下来熟悉一下docker的一些基本操作。
1、查看本地的images
docker images

Docker搭建测试环境及基本操作

2、从hub.docker.com拉取响应的images
docker pull images

Docker搭建测试环境及基本操作

3、运行指定的images,并在images里边执行command命令
docker run images command

Docker搭建测试环境及基本操作

4、查看当前运行的images的容器
docker ps (-a 查看所有的)如下所示

Docker搭建测试环境及基本操作

5、获取容器执行的log
docker logs [options] container

Docker搭建测试环境及基本操作

6、获取容器现进程
docker top container

Docker搭建测试环境及基本操作

7、停止或者杀掉运行中的容器
docker stop\kill container

8、查看容器的一些信息
docker inspect container

Docker搭建测试环境及基本操作

通过以上命令对docker的基本操作有了一些了解,
下边介绍一下交互式docker的交互式操作

docker run -i -t images 
会进入容器的命令行界面,和真是的操作系统一样,有了自己的terminal,可以自行shell命令等一些列从操作

Docker搭建测试环境及基本操作

执行exit,容器就会退出,或者执行Ctrl+p,然后Ctrl+q,可以保持到后台运行,利用docker ps即可查询到,如果觉得麻烦,可以在运行的时候指定一个名字:
docker run -i -t --name containerName images
指定名字为containerName,利用docker ps,即可查询到

Docker搭建测试环境及基本操作

当容器退出以后,再次启动容器,需要用到docker start命令
docker start containerId or containerName

启动以后,不会进入到命令终端的界面,此时需要执行docker attach的命令
docker attach containerId or containerName

以上就是docker的一些基本操作,下一篇会介绍如何构造自己的images,并push到hub.docker.com,为后来搭建测试环境做准备

Docker构建测试环境

构建测试环境首先要根据自己的需求,构建出适合自己项目的image,有了自己的image,就可以快速的搭建出来一套测试环境了。

下边就说一下构建image的两种方式。

1、DOCKFILE
创建文件夹:mkdir mydockerbuild

进入刚刚创建的文件夹:cd mydockerbuild

创建一个Dockerfile的文件

touch Dockerfile

编辑文件
#基于那个image进行修改的
FROM docker/whalesay:latest

#更新系统并安装fortunes软件
RUN apt-get -y update && apt-get install -y fortunes

#执行一个命令
CMD/usr/games/fortune -a | cowsay
 
退出并保存Dockerfile文件

#在文件夹下执行如下命令
#-t是对当前的自己构建仓库名称
还在当前文件夹下,执行 docker build -t docker-whale .

这样本地就会多一个docker-whale的REPOSITORY

2、利用image,自己手动构建自己的image
#首先从hub.docker.com去获取一个基础镜像,比如centos,ubuntu等

docker pull $imageName
#用上边下载的image启动一个容器,如下
#-i,采用交互式的方式启动容器,-t启动一个命令终端, --name给容器命名, --hostname给容器内的主机命名
sudo docker run -i -t --name $yourContainerName --hostname=xiaoqiang $imageName

#进入容器的交互式命令终端,现在就相当于在一台干净的服务器上,需要自己去安装搭建测试环境所需要的组件
#例如 yum install nginx 等

#对修改后的image进行提交(commit),并起一个名字
#-m注释,--author image的作者,倒数第二个是containerID,最后一个参数是image的名字
docker commit -m='the first image' --author='liuweiqiang' 37b1214d33a6 liuweiqiang2v/tupo

以上两种方法就构建了自己的image,但是image只存在本地,怎么让别人也能获取到这个image,从而快速的搭建出一套测试环境

这时候可以把image放到hub.docker.com(国内也有一些代理,可以自行搜索)
先去hub.docker.com申请账号,并创建自己的仓库。
回到保存image的主机。
输入docker login docker.com,根据提示进行操作即可。

然后就是对自己构建的image进行push,可能push过程比较漫长(国内的代理好一些)
docker push $yourImageName

push完毕后,别人就可以通过docker pull从docker.com进行下载了。

注:可以设置自己的仓库为私有的,防止其他人进行pull,或者泄露公司的东西

相关推荐