#!/bin/bash
#获取用户名
[ pwd == '/root' ] && hn="root@$(hostname):~#" || hn="root@$(hostname):pwd#"
d (){
echo -e "\033[1m$hn$dd\033[0m"
}
a (){
sleep 1
}
c (){
echo -e "\033[32m$cc\033[0m"
}
#检查网络
ping -c 3 -i 0.2 -W 1 www.g.cn &> /dev/null
[ $? -ne 0 ] && echo "请检查你的网络是否畅通" && exit

read -p "请输入你的镜像加速地址.如https://rala1lg0.mirror.aliyuncs.com:" http

cc="步骤1 apt-get update 更新数据源" && c
dd="apt-get update" && d
apt-get update && a

cc="步骤2 安装所需依赖" && c
dd="apt-get -y install apt-transport-https ca-certificates curl software-properties-common" && d
apt-get -y install apt-transport-https ca-certificates curl software-properties-common && a

cc="步骤3 安装GPG证书" && c
dd="curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add" && d
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add && a

cc="步骤4 新增数据源" && c
dd='add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"' && d
add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs)
stable" && a

cc="步骤5 更新并安装 docker-ce " && c
dd="apt-get update && apt-get install -y docker-ce " && d
apt-get update && apt-get install -y docker-ce && a

cc="步骤6 验证是否安装成功 " && c
dd="docker version" && d
docker version && a

cc="步骤7 配置docker镜像加速器" && c
m1='"registry-mirrors"'
m2=': ["'
m3=$http
m4='"]'
m5=$m1$m2$m3$m4
dd="tee /etc/docker/daemon.json <<-'EOF'
{
$m5
}
EOF" && d
echo "{
$m5
}" > /etc/docker/daemon.json && a && cat /etc/docker/daemon.json
sudo systemctl daemon-reload
sudo systemctl restart docker
cc="查看镜像仓库多了加速地址" && c
dd="docker info" && d
docker info |tail -10 && a

cc="查看docker运行状态" && c
dd="service docker status" && d
service docker status |head -15 && a

cc="Hello-world程序验证Docker的正确安装" && c
dd="docker run hello-world" && d
docker run hello-world | head -10 && a

cc="Docker镜像,搜索Docker镜像" && c
dd="sudo docker search ubuntu" && d
sudo docker search ubuntu && a

cc="获取Docker镜像" && c
dd="sudo docker pull ubuntu" && d
sudo docker pull ubuntu & a

cc="获取mysql镜像" & c
dd="docker pull mysql" && d
docker pull mysql & a

cc="查看镜像" && c
dd="docker images" && d
docker images && a

cc="导出docker镜像,删除docker镜像" && c
dd="docker save ubuntu > /opt/ubuntu.tar.gz" && d
docker save ubuntu > /opt/ubuntu.tar.gz
sleep 5
dd="docker rmi ubuntu" && d
docker rmi ubuntu
dd="docker images" && d
docker images && a

cc="导入docker镜像" && c
dd="docker load < /opt/ubuntu.tar.gz" && d
docker load < /opt/ubuntu.tar.gz && a
sleep 5

cc="4.Docker容器,新建并运行容器,查看容器" && c
dd="docker run -itd ubuntu" && d
docker run -it ubuntu & a
dd="docker ps -a" && d
docker ps -a && a && sleep 3

cc="停止容器,删除容器" && c

gn (){
while :
do
x=docker ps -a |wc -l && let y=x-1
[ $y -eq 0 ] && echo "没有可以执行的容器,正在退出..." && sleep 3 && break
docker ps -a
read -p "请输入要停止、删除的完整的容器名,或按ctrl+c结束:" rq && [ -e $rq ] && continue
st=docker ps -a |tail -$y |grep "$rq" |cut -c1-12 |head -1
[ -e $st ] && echo "\033[31m$rq\033[0m不在容器中,容器中有以下服务:" && continue
dd="docker stop $st" && d
docker stop "$st" && a
dd="docker rm -f $st" && d
docker rm -f "$st"
done
}
x=docker ps -a |wc -l && let y=x-1
for i in seq $y
do
read -p "输入:[ls列出可以删除的docker容器][q退出]:" abc
case $abc in
q)
break;;
ls)
gn;;
*)
echo "输入不合法!" && gn;;
esac
done

docker的安装,自己写了一个安装docker的脚本,辅助做docker安装的实验(ubuntu)的更多相关文章

  1. 今天我自己第一次写了一个Windows批处理bat脚本,一起学习一下吧。

    今天我自己第一次写了一个Windows批处理bat脚本,备注一下 事情原由:自己使用Java开发了一个加解密的工具.但是当把工具给别人使用的时候,别人还需要把代码编译打包, 然后还需要看一下代码里面的 ...

  2. 初学shell,今天遇到由wget下载到本地的网页源代码的乱码问题,无聊的写了一个转码的脚本

    今天用wget想下载文件,结果下载了一堆本地的index.html文件,一查看全是乱码,然后百度了一下,网页的编码格式大概有三种: 1.utf-8 2.gb2312 3.gbk 要在网页源码中的< ...

  3. 第一个Mac shell 小脚本

    大多数程序员都喜欢偷懒的,我也不例外.相信好多Android开发的coder 在网络http请求方面,会浪费很多时间在接口调试这里..有时候,自己写了一个小测试,行还好,不行的话,还要跟写后台的哥们一 ...

  4. 一个不错的shell 脚本教程 入门级

    一个很不错的bash脚本编写教程,至少没接触过BASH的也能看懂     建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行s ...

  5. 使用alpine的docker镜像下 dind 的方式安装dotnet core 的一个非dockerfile的方法

    1. 下载dind的镜像 docker pull docker:dind 2. 执行该镜像 docker run -it --privileged --name some-docker -d dock ...

  6. Docker安装以及运行第一个HelloWorld

      Docker安装以及运行第一个HelloWorld

  7. Windows下docker的安装,将ASP.NET Core程序部署在Linux和Docker中

    参考文章: https://www.cnblogs.com/jRoger/p/aspnet-core-deploy-to-docker.html docker for windows下载连接: htt ...

  8. OpenCV学习笔记(一)安装及运行第一个OpenCV程序

    1.下载及安装 OpenCV是一套开源免费的图形库,主要有C/C++语言编写,官网: http://opencv.org/ .在 http://opencv.org/downloads.html 可以 ...

  9. 【ELK】【docker】【elasticsearch】1. 使用Docker和Elasticsearch+ kibana 5.6.9 搭建全文本搜索引擎应用 集群,安装ik分词器

    系列文章:[建议从第二章开始] [ELK][docker][elasticsearch]1. 使用Docker和Elasticsearch+ kibana 5.6.9 搭建全文本搜索引擎应用 集群,安 ...

随机推荐

  1. 【clientX,offsetX,screenX】 【scrollWidth,clientWidth,offsetWidth】的区别

    一.深刻认识clientX,offsetX,screenX 概念(来源于网络): clientX 设置或获取鼠标指针位置相对于当前窗口的 x 坐标,其中客户区域不包括窗口自身的控件和滚动条. clie ...

  2. react全家桶从0搭建一个完整的react项目(react-router4、redux、redux-saga)

    react全家桶从0到1(最新) 本文从零开始,逐步讲解如何用react全家桶搭建一个完整的react项目.文中针对react.webpack.babel.react-route.redux.redu ...

  3. 吴裕雄--天生自然python学习笔记:Python3 命名空间和作用域

    命名空间(Namespace)是从名称到对象的映射,大部分的命名空间都是通过 Python 字典来实现的. 命名空间提供了在项目中避免名字冲突的一种方法.各个命名空间是独立的,没有任何关系的,所以一个 ...

  4. linux下载文件到本地_把linux服务器的文件下到本地windows

    tar -cvf script.tar scriptsz script.tar 文件夹先要打包,并且要指定打包的名字. 具体:  sz/rz命令:  一般来说,linux服务器大多是通过ssh来进行远 ...

  5. Selenium的Web自动化测试(送源码)

    8.1  Selenium自动化测试准备 1.Selenium介绍 Selenium是一个Web开源自动化测试框架,页面级操作,模拟用户真实操作,API从系统层面触发事件. Selenium 1.0  ...

  6. 修改从Maven中心仓库下载到本地的jar包的默认存储位置及远程仓库

    从Maven中心仓库下载到本地的jar包的默认存放在”${user.home}/.m2/repository”中,${user.home}表示当前登录系统的用户目录(如"C:\Users\g ...

  7. MySQL5.6 数据库主从(Master/Slave)同步安装与配置详解

    .安装环境 .基本环境配置 .Master的配置 .Slave的配置 .添加需要同步的从库Slave .真正的测试 安装环境 1 操作系统 :CentOS 6.5 2 数据库版本:MySQL 5.6. ...

  8. java快速开发平台可视化开发表单

    XJR java快速开发平台,简单的理解就是:开发人员以某种编程语言或者某几种编程语言(比如:目前流行的多种web技术,包括springboot, JPA,Druid, Activiti,Lombok ...

  9. 跟我猜Spring-Boot:bean的创建

    废话在前 最近几年的技术路子很杂,先是node,然后是php,后来是openresty,再后来转到了java,而接触的框架(Framework),也越发的复杂,从最开始的express/koa,到lu ...

  10. JZOJ 3505. 【NOIP2013模拟11.4A组】积木(brick)

    3505. [NOIP2013模拟11.4A组]积木(brick) (File IO): input:brick.in output:brick.out Time Limits: 1000 ms Me ...