`关于脚本:`
'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镜像的启停与删除的更多相关文章

  1. Docker、Dockerfile、Docker镜像、容器这些都是什么鸟?

    老生常谈,再再再……普及一下: Docker:最早是dotCloud公司出品的一套容器管理工具,但后来Docker慢慢火起来了,连公司名字都从dotCloud改成Docker. Dockerfile: ...

  2. dockerfile封装docker镜像

    一.使用都dockerfile封装docker镜像 1.在任意一个地方创建文件夹docker mkdir docker 2.进入文件夹并且下载一个django2.1.7的包以及一个epel.repo ...

  3. DOCKER学习_011:使用Dockerfile制作docker镜像

    前面使用commit的方式,制作一个docker镜像,本次介绍使用Dockerfile制作一个dockers镜像 [root@docker-server3 ~]# mkdir /openssh [ro ...

  4. 基于Dockerfile创建docker镜像

    0.先创建一个文件夹img mkdir img 1.Linux上新建3个文件 2.文件内容分别写入 (1)Dockerfile中 # 基于的基础镜像centos FROM centos # 维护该镜像 ...

  5. 利用脚本一键执行脚本,创建SharePoint文档库列表

    SharePoint基于文档库和列表上进行二次开发,生成新的文档库和新的列表模板 通过新的模板,创建新的文档库与列表 --定义site对象$site = SPSite http://dvt176/si ...

  6. 利用ROWID快速执行关联更新

    一.构造相关表P1,P2 create table p1(id int,name char(10)); create table p2(id int,name char(10)); 二.批量插入数据 ...

  7. 快速获取批量处理Docker镜像SQL语句

    .获取批量pull语句 select concat('docker pull develop-harbor.geostar.com.cn/', t.name, ':', t1.tag) name fr ...

  8. Docker:dockerfile自动构建镜像 [六]

    一.手动docker镜像的缺点 相对于手动制作的docker镜像,使用dockerfile构建的镜像有以下优点: 1.dockerfile只有几kb,便于传输 2.使用dockerfile构建出来的镜 ...

  9. 构建Docker镜像两种方式的比较-Dockerfile方式和S2I方式

    前言 写Dockerfile是构建Docker镜像最通常的方式,接触过Docker的童鞋多少了解一些.前段时间研究OpenShift(paas的一种),发现了另外一种构建Docker镜像的方式:S2I ...

随机推荐

  1. 查询并导出表结构为Excel

    应公司要求将数据库结构用表格形式来展示给客户,最开始我手工弄了两张表效率实在太低了,于是就想偷懒了,就去网上找了一段儿sql查询语句效率提高了70%一执行就出来了,导出查询结果剩下的就只需要调整一下e ...

  2. java集合分类

    Java中的集合包括三大类,它们是Set.List和Map, Set(集) List(列表) Map(映射) 它们都处于java.util包中,Set.List和Map都是接口,它们有各自的实现类.( ...

  3. 【记录一个问题】cv::cuda::dft()比cv::dft()慢很多

    具体的profile调用图如下: 可以看见compute很快,但是构造函数很慢. nvidia官网看到几篇类似的帖子,但是没有讲明白怎么解决的: opencv上的参考文档:https://docs.o ...

  4. 【记录一个问题】linux+opencv+cuvid解码1080P视频,当使用CUDA核函数的时候,必然崩溃

    崩溃的信息如下: 1 OpenCV(4.1.0-dev) Error: Gpu API call (invalid configuration argument) in videoDecPostPro ...

  5. 将Cesium ion上的3D Tiles和Bing imagery应用到osgEarth

    Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ Pelican Mapping 激动的宣布支持加载Cesium ...

  6. 记一次org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only异常

    @Transactional(rollbackFor = Exception.class) @Overridepublic DubboResult<Boolean> productAddO ...

  7. gin源码解读1-net/http的大概流程

    gin框架预览 router.Run()的源码: func (engine *Engine) Run(addr ...string) (err error) { defer func() { debu ...

  8. gin中自定义路由日志的格式

    package main import ( "fmt" "github.com/gin-gonic/gin" "net/http" &quo ...

  9. 多线程概述(好处和弊端)(jvm多线程解析、主线程运行示例)

    1 package multithread; 2 3 /* 4 * 进程:正在进行中的程序(直译). 5 * 6 * 线程:就是进程中一个负责程序执行的控制单元(执行路径). 7 * 一个进程中可以多 ...

  10. asp.net core监控—引入Prometheus(三)

    上一篇博文中说到Prometheus有四种指标类型:Counter(计数器).Gauge(仪表盘).Histogram(直方图).Summary(摘要),并且我们做了一个Counter的Demo,接下 ...