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
2、从hub.docker.com拉取响应的images docker pull images
3、运行指定的images,并在images里边执行command命令 docker run images command
4、查看当前运行的images的容器 docker ps (-a 查看所有的)如下所示
5、获取容器执行的log docker logs [options] container
6、获取容器现进程 docker top container
7、停止或者杀掉运行中的容器 docker stop\kill container 8、查看容器的一些信息 docker inspect container
通过以上命令对docker的基本操作有了一些了解, 下边介绍一下交互式docker的交互式操作 docker run -i -t images 会进入容器的命令行界面,和真是的操作系统一样,有了自己的terminal,可以自行shell命令等一些列从操作
执行exit,容器就会退出,或者执行Ctrl+p,然后Ctrl+q,可以保持到后台运行,利用docker ps即可查询到,如果觉得麻烦,可以在运行的时候指定一个名字: docker run -i -t --name containerName images 指定名字为containerName,利用docker ps,即可查询到
当容器退出以后,再次启动容器,需要用到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,或者泄露公司的东西