博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
test-definitions/blob/master/auto-test/docker/docker.sh
阅读量:4214 次
发布时间:2019-05-26

本文共 3246 字,大约阅读时间需要 10 分钟。

#!/bin/bash#-x 会回显命令执行的语句和参数set -x#相对路径执行脚本,并通过cd - 返回当前目录cd ../../utils. ./sys_info.sh. ./sh-test-libcd -#要支持docker ,可以看出不同发行版安装的包有所不同case $distro in    centos)		pkgs="make wget docker"    ;;    ubuntu)		pkgs="make wget docker docker.io"    ;;    *)        echo "[$PKG_NAME] do not support install hhvm on $HOST system"    ;;esac#安装docker相关的包,并打印返回的值以检查是否安装成功install_deps "${pkgs}"print_info $? install-docker#启动docker serviceif [ "$start_service"x = ""x ]; then    service docker startelse    groupadd docker    $start_service docker.servicefiprint_info $? docker-start-service#查询docker 进程是否已经起来if [ "`ps -aux | grep docker`"x != ""x ]; then    print_info 0 docker-status-serviceelse    print_info 1 docker-status-servicefi#不存在docker 目录的话,就下载if [ ! -d docker ]; then    download_file http://htsat.vicp.cc:804/docker/docker.tar.gz    [[ $? -eq 0 ]] && tar -xvf docker.tar.gz	print_info $? download-docker-imagefi#docker 的load子命令解释如下  load      Load an image from a tar archive or STDINdocker load --input docker/openestuary_apache.tar.gzprint_info $? docker-load-apachedocker load --input docker/openestuary_mysql.tar.gzprint_info $? docker-load-mysql#images    List imagesimages=$(docker images| grep -v 'REPOSITORY' | awk '{print $1}')docker_images=$(echo $images | grep mysql | grep apache)#不存在这个目录if [ ! -d docker/Discuz ]; then	#将当前目录下docker这个目录压栈    pushd ./docker	#解包    tar -xf Discuz.tgz	print_info $? unzip-discuz-file	#返回到./docker 目录    popdfi#sed 替换ip地址,并通过grep 检查特定文件中ip是否替换成功sed -i "s/192.168.1.246/${local_ip}/g" `grep -rl 192.168.1.246 ./docker/Discuz`print_info $? replace-discuz-ipcp -rf ./docker/Discuz ./docker/mysql_data  /root/print_info $? prepare-lamp-file#运行镜像docker run -d -p 32768:80 --name apache -v /root/Discuz:/var/www/html openestuary/apacheprint_info $? docker-run-apachedocker run -d -p 32769:3306 --name mysql -v /root/mysql_data:/u01/my3306/data openestuary/mysqlprint_info $? docker-run-mysql#通过docker ps 得到目前运行的docker idcontainer_id=$(docker ps | grep -v IMAGE | awk '{print $1}')if [ "$container_id"x != ""x ]; then    print_info 0 docker-pselse    print_info 1 docker-psfi#declare -a 声明两个数组declare -A id_service_dicdeclare -a image_id#根据docker ps得到两个数组ids=$(docker ps | grep -v IMAGE | awk '{print $1}')services=$(docker ps | grep -v IMAGE | awk '{print $NF}')#ids包含一个数组,将这个数组值读入到image_id 这个数组中read -a image_id <<< $(echo $ids)declare -a serviceread -a service <<< $(echo $services)#得到数组的长度len_ids=${#service[@]}i=0while [ $i -lt $len_ids ]do    id_service_dic[${image_id[$i]}]=${service[$i]}    i=$(( $i + 1 ))done#判断当前目录下这个目录是否存在if [ ! -f "upload" ]; then	echo "upload file not exist!!"fi#下载文件wget http://${local_ip}:32768/upload#print_info $? docker-run-LAMP#modify by liucaili 20170606if [ -f "upload" ]; then	print_info 0 docker-run-LAMPelse	print_info 1 docker-run-LAMPfi#针对container_id 中每个docker 执行restart 命令for i in $container_iddo    docker restart $i    print_info $? docker-restart-${id_service_dic[$i]}done#执行stop命令for i in $container_iddo    docker stop $i    print_info $? docker-stop-${id_service_dic[$i]}done#删除每个dockerfor i in $container_iddo    docker rm $i    print_info $? docker-rm-${id_service_dic[$i]}done#删除镜像for i in ${images}do    docker rmi $i    print_info $? docker-rmi-$idone

转载地址:http://tznmi.baihongyu.com/

你可能感兴趣的文章
【屌丝程序的口才逆袭演讲稿50篇】第一篇:互联网时代U盘化生存方式 【张振华.Jack】
查看>>
CentOS6.4配置Hadoop-2.6.0集群配置安装指南(经过实战演练)【张振华.Jack】
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第二篇:专注的力量 [张振华.Jack]
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第三篇:我的舍与得的2014[张振华.Jack]
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第五篇:不要给自己找任何借口【张振华.Jack】
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第七篇:请留意我们身边的风景 【张振华.Jack】
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第八篇:坚持的力量 【张振华.Jack】
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第九篇:春节那些事-过年回家不需要理由【张振华.Jack】
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第十篇:程序员们请看看外面的世界吧【张振华.Jack】
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第十一篇:马云乌镇40分钟演讲实录【张振华.Jack】
查看>>
Java并发编程从入门到精通 张振华.Jack --我的书
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第十二篇:世界上最快的捷径【张振华.Jack】
查看>>
Android中Java代码和XML布局效率问题
查看>>
android TextView属性大全(转)
查看>>
Conclusion for Resource Management
查看>>
Conclusion for Constructors,Destructors,and Assignment Operators
查看>>
Conclusion for Accustoming Yourself to C++
查看>>
面试题1:赋值运算函数(offer)
查看>>
Mark : MessagePack简介及使用
查看>>
Mark : Hadoop Raid-实战经验总结
查看>>