`关于脚本:`
'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. VC 2010 Express 学生版(中文版)

    Microsoft Visual C++ 2010 Express 学生版 下载传送门(提取码:r7sm) 如何安装 拿到压缩文件后,解压到桌面(别怕,安装完后这个文件夹是可以删除的). 在 &quo ...

  2. NOSQL数据库之MongoDB

    一.NoSQL概述 如今,大多数的计算机系统(包括服务器.PC.移动设备等)都会产生庞大的数据量.其实,早在2012年的时候,全世界每天产生的数据量就达到了2.5EB(艾字节,​).这些数据有很大一部 ...

  3. Java实现163邮箱发送邮件到QQ邮箱

    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6812973124141711876/ 先创建一个maven的普通项目 添加依赖,附在文档末尾 其中几个注意的地方 ...

  4. 下载并搭建maven环境

    1.下载maven 1.在官网下载maven  http://maven.apache.org/download.cgi 2.将下载maven解压.复制路径. 2.搭建maven环境 1.新建M2_H ...

  5. Go语言测试:testing

    学习参考来源:https://www.liwenzhou.com/posts/Go/16_test/ go test工具 必须导入包: import "testing" go te ...

  6. tomcat容器启动失败疑难问题解决方案

    严重: 子容器启动失败java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 初始化组件[or ...

  7. 【刷题-LeetCode】205. Isomorphic Strings

    Isomorphic Strings Given two strings *s* and *t*, determine if they are isomorphic. Two strings are ...

  8. sysctl内核参数

    sysctl命令用来配置与显示/proc/sys目录中的内核参数.如果想使参数长期保存,可以通过编辑/etc/sysctl.conf文件来实现. -a 显示所有的系统参数 -p 从指定的文件加载系统参 ...

  9. URL Rewrite(四种重定向策略)

    目录 一:Rewrite基本概述 1.Rewrite简介 2.Rewrite基本概述 3.Rewrite作用 4.什么是URL? 二:rewrite语法 三:Rewrite标记Flag 1.last和 ...

  10. Redis命令大全(超详细)

    一:序 其实本文的命令大家都可以去官网学习,但是我出这篇文章只是以更直观的方式来解读官网上的命令,让大家一眼可以看得懂,看的明白: 注意:我全文使用的Redis版本为 6.2.x 版本,低版本可能有些 ...