利用脚本快速执行Dockerfile以及docker镜像的启停与删除
`关于脚本:`
'sh setup.sh build'    # 将Dockerfile创建成镜像
'sh setup.sh run'      # 启动build创建好的镜像,放到后台运行
'sh setup.sh exec'     # 进入启动好的容器
'sh setup.sh delete'   # 删除容器和镜像
`脚本内的变量:`
1、dockername: # 容器的名称,在run一个镜像的时候,用到了--name的参数,删容器的时候,也会引用到这个变量,包括进入容器(毕竟--name指定的唯一性更好)
2、rminame:    # 镜像的名称,build Dockerfile的时候,-t参数引用了这个变量
3、networkMode: # dock的网络模式
4、susedocker: # 通过docker ps查看,利用grep去过滤dockername,再用awk切出容器id,进行容器的删除
5、susermi:    # 通过docker images,利用grep去过滤rminame,再用awk切出镜像id,进行镜像的删除
# 因为当时想在suse里面测试一些东西,所以就写了susedocker和susermi,如果有修改,记得全局修改,否则会报错,找不到变量
`建议:`
'这个脚本只是当时为了测试一些服务,因为docker清理环境会方便一点,但是不想过多的花时间,去频繁的通过docker命令来删除和创建docker,有的时候Dockerfile没写好,又要去频繁build,甚至要想tag写什么,为了省事,就写了这个脚本,这样就只需要专注于Dockerfile里面的内容。所以,这个脚本的健壮性不高,不建议用在生产环境!!'
#!/bin/env bash
set -e
dockername=susetest
rminame=opensuse-test
networkMode=none
susermi=$(docker images | grep $rminame | awk '{print $3}')
susedocker=$(docker ps -a | grep $dockername | awk '{print $NF}')
dockerBuild(){
docker build -t $rminame .
}
dockerRun(){
docker run -itd --name $dockername --network $networkMode $rminame
}
dockerExec(){
docker exec -it $dockername /bin/bash
}
dockerRm(){
docker rm -f $susedocker
}
dockerRmi(){
docker rmi -f $susermi
}
case $1 in
'build')
    dockerBuild
    ;;
'run')
    dockerRun
    ;;
'exec')
    dockerExec
    ;;
'delete')
    dockerRm
    dockerRmi
    ;;
'*')
    echo "please input (build|run|exec|delete)"
    exit 2
    ;;
esac
												
											利用脚本快速执行Dockerfile以及docker镜像的启停与删除的更多相关文章
- Docker、Dockerfile、Docker镜像、容器这些都是什么鸟?
		
老生常谈,再再再……普及一下: Docker:最早是dotCloud公司出品的一套容器管理工具,但后来Docker慢慢火起来了,连公司名字都从dotCloud改成Docker. Dockerfile: ...
 - dockerfile封装docker镜像
		
一.使用都dockerfile封装docker镜像 1.在任意一个地方创建文件夹docker mkdir docker 2.进入文件夹并且下载一个django2.1.7的包以及一个epel.repo ...
 - DOCKER学习_011:使用Dockerfile制作docker镜像
		
前面使用commit的方式,制作一个docker镜像,本次介绍使用Dockerfile制作一个dockers镜像 [root@docker-server3 ~]# mkdir /openssh [ro ...
 - 基于Dockerfile创建docker镜像
		
0.先创建一个文件夹img mkdir img 1.Linux上新建3个文件 2.文件内容分别写入 (1)Dockerfile中 # 基于的基础镜像centos FROM centos # 维护该镜像 ...
 - 利用脚本一键执行脚本,创建SharePoint文档库列表
		
SharePoint基于文档库和列表上进行二次开发,生成新的文档库和新的列表模板 通过新的模板,创建新的文档库与列表 --定义site对象$site = SPSite http://dvt176/si ...
 - 利用ROWID快速执行关联更新
		
一.构造相关表P1,P2 create table p1(id int,name char(10)); create table p2(id int,name char(10)); 二.批量插入数据 ...
 - 快速获取批量处理Docker镜像SQL语句
		
.获取批量pull语句 select concat('docker pull develop-harbor.geostar.com.cn/', t.name, ':', t1.tag) name fr ...
 - Docker:dockerfile自动构建镜像 [六]
		
一.手动docker镜像的缺点 相对于手动制作的docker镜像,使用dockerfile构建的镜像有以下优点: 1.dockerfile只有几kb,便于传输 2.使用dockerfile构建出来的镜 ...
 - 构建Docker镜像两种方式的比较-Dockerfile方式和S2I方式
		
前言 写Dockerfile是构建Docker镜像最通常的方式,接触过Docker的童鞋多少了解一些.前段时间研究OpenShift(paas的一种),发现了另外一种构建Docker镜像的方式:S2I ...
 
随机推荐
- vue3.0获取地址栏参数
			
方法一 toRaw(route).query.value 方法二 router.currentRoute.value.query
 - Anaconda3+CUDA10.1+CUDNN7.6+TensorFlow2.6安装(Ubuntu16)
			
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
 - 基于Jenkins+Maven+Gitea+Nexus从0到1搭建CICD环境
			
在传统的单体软件架构中,软件开发.测试.运维都是以单个进程为单位. 当拆分成微服务之后,单个应用可以被拆分成多个微服务,比如用户系统,可以拆分成基本信息管理.积分管理.订单管理.用户信息管理.合同管理 ...
 - How to die?
			
下次给一个 vector 搞 unique 之前,一定要记得给它排序!!1(少点自以为是) 对一个 set "同时"删除两个数时,一定要注意特判两个数是否重复/重叠. 有两个序列, ...
 - Android官方文档翻译 十五 3.3Supporting Different Platform Versions
			
Supporting Different Platform Versions 支持不同的平台版本 This lesson teaches you to 这节课教给你 Specify Minimum a ...
 - 手把手教你分析解决MySQL死锁问题
			
在生产环境中如果出现MySQL死锁问题该如何排查和解决呢,本文将模拟真实死锁场景进行排查,最后总结下实际开发中如何尽量避免死锁发生. 一.准备好相关数据和环境 当前自己的数据版本是8.0.22 mys ...
 - CMake与OpenMP
			
CMake与OpenMP cmake_minimum_required (VERSION 2.6) project (TEST) set (TEST_VERSION 0.1) set(CMAKE_BU ...
 - 【刷题-PAT】A1108 Finding Average (20 分)
			
1108 Finding Average (20 分) The basic task is simple: given N real numbers, you are supposed to calc ...
 - 前端基础之javaScript(基本类型-布尔值数组-if-while)
			
目录 一:javaScript基本数据类型 1.字符串类型常用方法 2.返回长度 3.移出空白 4.移除左边的空白 5.移出右边的空格 6.返回第n个字符 7.子序列位置 8.根据索引获取子序列 9. ...
 - WEB前端基础之SCC(字体颜色背景-盒子模型)
			
目录 一:伪元素选择器 1.首字调整>>>:也是一种文档布局的方式 2.在文本的前面通过css动态渲染文本>>>:特殊文本无法选中 3.在文本的后面通过css动态渲 ...