5-在测试中使用Docker

来源:互联网 发布:win7 64位仿mac主题包 编辑:程序博客网 时间:2024/05/16 04:23

在测试中使用docker

5.1 [使用Docker测试静态网站]

Sample网站的初始Dockerfile

  1. 为Nginx Dockerfile创建一个目录

    mkdir sample

    cd sample

    touch Dockerfile

  2. 获取Nginx配置文件

    mkdir nginx && cd nginx //在sample文件夹下

    vi global.conf

    从链接拷贝代码到global.conf

    vi nginx.conf

    从链接拷贝代码到nginx.conf

    cd ..

  3. 网站测试的基本Dockerfile

    vi Dockerfile

    从链接拷贝代码到Dockerfile

构建Sample网站和Nginx镜像

sudo docker build -t jamtur01/nginx .


从Sample网站和Nginx镜像构建容器

1. 下载Sample网站    mkdir website && cd website    touch index.html    vi index.html

从链接拷贝代码到index.html

2. 构建一个Nginx测试容器    sudo docker run -d -p 80 --name website -v $PWD/website:/var/www/html/website jamtur01/nginx nginx

3. 查看Sample网站容器    sudo docker ps -l

浏览端口(查看Sample网站)

在宿主机浏览器网址栏输入:localhost:32774

修改网站

vi $PWD/website/index.html

再次浏览端口(如下图)

5.2 [使用Docker构建并测试Web应用程序]

构建Sinatra应用程序

  1. 为测试Web应用程序创建目录

    mkdir -p sinatra

  2. 在目录下创建Dockerfile文件

    cd sinatra

    vi Dockerfile

    将其内容拷贝到Dockerfile

  3. 构建新的Sinatra镜像

    sudo dockerfile build -t jamtur01/sinatra .

创建Sinatra容器

  1. 下载Sinatra Web应用程序

    cd sinatra

    wget –cut-dirs=3 -nH -r –reject Dockerfile,index.html –no-parent https://dockerbook.com/code/5/sinatra/webapp/

    ls -l webapp

  2. 确保webapp/bin/webapp可以执行

    chmod +x webapp/bin/webapp

  3. 启动第一个Sinatra容器

    sudo docker run -d -p 4567 –name webapp -v $PWD/webapp:/opt/webapp jamtur01/sinatra

  4. 检查Sinatra容器的日志

    sudo docker logs webapp

  5. 使用docker top列出Sinatra进程

    sudo docker top webapp

    注: 从这一日志可以看出,容器已经启动了Sinatra,而且WEBrick服务进程正在监听4567端口,等待测试.

  6. 检查Sinatra的端口映射

    sudo docker port webapp 4567

  7. 测试Sinatra应用程序(使用curl命令测试)

    注:可以看出,我们给Sinatra应用程序传入一些URL参数,并看到这些参数转化成JSON散列后输出。

扩展Sinatra应用程序来使用Redis

  1. 升级我们的Sinatra应用程序

    1.1 下载升级版的Sinatra Web应用程序

    cd sinatra

    wget –cut-dirs=3 -nH -r –reject Dockerfile,index.html –no-parent https://dockerbook.com/code/5/sinatra/webapp_redis/

    ls -l webapp_redis

    1.2 使webapp_redis/bin/webapp文件可执行

    chmod +x webapp_redis/bin/webapp

2.构建Redis数据库镜像

2.1 为Redis容器创建目录并创建Dockerfile

mkdir -p sinatra/rediscd sinatra/redisvi Dockerfile

拷贝代码到Dockerfile

2.2 构建Redis镜像并启动Redis容器

sudo docker build -t jamtur01/redis .sudo docker run -d -p 6379 --name redis jamtur01/redis 

2.3 检查Redis端口

sudo docker port redis 6379

2.4 在Ubutun上安装redis-tools(RedHat上安装用yum)

sudo  apt-get -y install redis-tools

2.5 测试Redis连接

redis-cli -h 127.0.0.1 -p 32795

将Sinatra应用程序连接到Redis容器(以下三种方法)

Docker内部连网

  1. docker0的网络接口:ip a show docker
  2. 容器内的eth0接口:ip a show eth0
  3. 在容器内跟踪对外的路由:traceroute xxxxxx
  4. Docker的iptables和NAT配置:sudo iptables -t nat -L -n
  5. 查看容器的网络配置:sudo docker inspect 容器名

  6. 直接与redis容器通信:redis-cli -h 172.17.0.3

Docker Networking(推荐)

  1. 创建Docker网络并查看网络:sudo docker network create xxx
  2. 列出当前系统中所有网络:sudo docker network ls
  3. 在Docker网络(app)中创建Redis容器(db)

    注:--net=app用来指定网络;--name db用来指定新容器名字
  4. 更新后的app网络(再次查看app网络中的信息)
  5. 链接Redis容器并查看容器内hosts文件:在app网络下启动了一个名为webapp的容器

    注:注意这里的本地路径!

  6. ping db.app
  7. 启动启用了Redis的Sinatra应用程序
  8. 检查SInatra容器的端口映射情况并测试启用了Redis的Sinatra应用程序

  9. 确认Redis容器数据

Docker链接(Docker 1.9及之前版本推荐)

连接容器小结

5.3 [Docker用于持续集成]

构建Jenkins和Docker服务器

  1. 为Jenkins创建目录并创建Dockerfile

    mkdir jenkins

    cd jenkins

    touch Dockerfile

  2. 编辑Dockerfile

    vi Dockerfile

    将代码拷贝到Dockerfile

  3. 获取dockerjenkins.sh脚本

    wget https://raw.githubusercontent.com/jamtur01/dockerbook-code/master/code/5/jenkins/dockerjenkins.sh

    chmod 0755 dockerjenkins.sh

  4. 构建Docker-Jenkins镜像

    sudo docker build -t jamtur01/jenkins .

  5. 运行Docker-Jenkins镜像(启动名为jenkins的容器)

    sudo docker run -p 8080:8080 –name jenkins –privileged -d jamtur01/dockerjenkins

    注:--privileged标志,可以启动Docker的特权模式。
  6. 检查DockerJenkins容器的日志

    sudo docker logs jenkins

  7. 在浏览器上通过端口访问Jenkins服务器

    localhost:8080

    注:首次访问需要一个密码(需要进入容器交互界面(sudo docker exec -t -i jenkins /bin/bash),在/var/jenkins_home/secrets/initialAdminPassword里)    然后应该会让先安装插件,创建帐号之类的(帐号:tianpeng 密码:tianpeng)

创建新的Jenkins作业

  1. 单击create new jobs链接,打开创建新作业的向导;

  2. 把新作业命名为Docker_test_job,选择Freestyle project,点击OK;

  3. 单击AdvancedProject Options下面的Advanced…按钮,设置运行Jenkins的工作空间;

  4. 在Source Code Management区域里,选择Git并指定测试仓库https://github.com/jamtur01/docker-jenkins-sample.git

  5. 单击Add Build Step,选择Execute shell(执行脚本);

    在链接里复制执行脚本

  6. 单击Add post-build action, 加入一个Publish JUint test result report(公布JUint测试结果报告)的动作,在Test report XMLs域,需要指定ci_reporter gem的XML输出的位置;

  7. 单击Save保存新的作业。

运行Jenkins作业

  1. 单击Build Now,就会看到Build History方框里,如图所示;

  2. 单击这个作业,看看正在执行的测试运行的详细信息;

  3. 单击Console Output,查看测试作业已经执行的命令;

    注:其实这里的“红色图标”表示测试执行失败,但具体问题还没有找出来。

5.4 多配置的Jenkins

创建多配置作业

  1. 单击New Item(若是第一次则单击Create new jobs),命名为Docker_matrix_job,选择Multi-configuration_project,单击OK;

  2. 在Source Code Management区域里,选择Git并指定测试仓库https://github.com/jamtur01/docker-jenkins-sample.git

  3. 在Configuration Axis部分单击Add Axis,并选择User-defined Axis;

  4. 在Build Environment部分单击Delete workspace before build starts;

  5. 在Build部分单击Add Build Step,选择Execute shell(执行脚本);

    在链接里复制执行脚本

  6. 点击Save保存。

测试多配置作业

  1. 单击Build Now
  2. 如果出现“绿球图标”,表示测试执行成功。
原创粉丝点击