docker基础应用二

环境部署:

#启动容器时指定网络模式

docker run -itd --name={container name} --net={ 网络模式}

 

#部署被测环境前端和后台,Conan和 holmes  启动前端时使用默认bridge网络模式分配端口;bridge模式使用最广泛,其网络隔离型最好;其通讯范围在容器虚拟网络范围内

在后台启动时使用container链接前端conan的方式启动; 后台的服务网络挂到前一个容器的网络中,这两个容器通过内网host可以通讯;搭建的测试环境只暴漏出前端端口

在测试被测前端应用时(应用内部有访问对应后台的用例) 后台的服务依然为前端提供服务.

docker run --name=conan -itd -p 8999:4200 conan

docker run --name=holmes -itd --net=container:conan holmes  

 

#--network host 选择host网络模式使用的是宿主机的网络, 适用于容器与外网直接进行链接, 不需要端口映射, 比如容器(jenkins)需要拉取git上的代码,  但是容器网络没有sshk权限,需要在启动容器时自己配置,比较麻烦,因此直接使用宿主机网络链接,但是这种模式也有缺点, 其在公网内广播通讯易混淆(容器越多 其广播端口越容易冲突)

使用-v 数据卷挂载容器数据时, 需要修改目录权限,因为当映射本地数据卷时, 本地的目录的拥有者是root权限,而容器中的拥有者是jenkins, 其uid 为1000

sudo chown -R 1000 /home/wangjianqing/jenkins_data

docker run --name myjenkins -itd --network host -v /home/wangjianqing/jenkins_data:/var/jenkins_home --env JAVA_OPTS='Xmx8192m' jenkins/jenkins

 

#配置testlink环境, 需要新配置mariadb; 启动完mariadb,再启动testlink时,需要获取mariadb的通讯, 可以使用-e配置文件形式将db的配置写入到link容器中,也可以使用conntainer指向db容器; 

以下使用--link  把db的网络信息以环境变量的形式注入到link容器(可以通过exec进入link容器中查看env环境变量)

docker run -d --name mariadb -e ALLOW_EMPTY_PASSWORD=yes -e MARIADB_USER=bn_testlink -e MARIADB_DATABASE=bitnami_testlink -v /home/gaofei/test/mysql:/var/lib/mysql -p 8088:3306 bitnami/mariadb:latest

docker run -d --name testlink -p 8099:80 -p 444:443 -e ALLOW_EMPTY_PASSWORD=yes -e TESTLINK_DATABASE_USER=bn_testlink -e TESTLINK_DATABASE_NAME=bitnami_testlink --link mariadb bitnami/testlink:latest

 

#搭建分布式UI web自动化测试Grid,需要下载VNC Viewer; 可以使用它打开node运行容器时的 图形界面

测试脚本作用于hub上,hub链接多个node(容器); 每个node下管理多个浏览器  

如果chrome 和 hub不在同一台服务器中, 这两个容器不能使用--link的方式;  需要把hub的信息以环境变量的形式-e注入到node(chrome)容器中

docker run --name=hub -p 5001:4444 -e GRID_TIMEOUT=0 -e GRID_THROW_ON_CAPABILITY_NOT_PRESENT=true -e GRID_NEW_SESSION_WAIT_TIMEOUT=-1 -e GRID_BROWSER_TIMEOUT=15000 -e GRID_TIMEOUT=30000 -e GRID_CLEAN_UP_CYCLE=30000 -d selenium/hub:3.7.1-beryllium

docker run --name=chrome -p 5902:5900 -e NODE_MAX_INSTANCES=6 -e NODE_MAX_SESSION=6 -e NODE_REGISTER_CYCLE=5000 -e DBUS_SESSION_BUS_ADDRESS=/dev/null -v /dev/shm:/dev/shm --link hub -d selenium/node-chrome-debug:3.7.1-beryllium

VNC密码是:secret

 

#制作镜像

使用commit

使用docker file 编程的方式制作镜像

FROM centos

上一篇:How to fix “Internal Diagnostics Hub Exception” in VS 2015?


下一篇:57、尚硅谷_SpringBoot_Docker-docker镜像操作常用命令