Docker Volume 的那点事

使用 的过程中,数据保存是很重要的一环,因为容器一旦被删除,容器内的数据也将一并被删除。而 Volume 正是为了解决这个问题而存在,它可以映射一个物理机上的文件夹到容器内部,用于保存容器产生的数据。下面就来说说 Dokcer Volume 的使用及注意事项。

Continue reading “Docker Volume 的那点事”

Docker Volume 的那点事

牧场假说

在一片一望无垠的大牧场上,猪马牛羊各自为政,偶有冲突,每个族群都以为自己天下无敌,无所不能。

它们知道围栏外面别有洞天,然而围栏太高,它们也只能绕着围栏转圈,观望。

有个别牛羊在围栏外见到过人类的身影,也有不少牛羊无缘无故失踪,但对于诺大个族群来说,不值一提,也极少引起重视。

2018年3月14日,一只专于研究圈外世界的羊博士突然顿悟,明白了牧场存在的意义以及各族群的命运。

正当它要将这个秘密公之于众的时候,它的灵魂被带走了,这个秘密终于再次被埋藏。

经过短暂的哀悼后,各族群继续过着舒适而又矛盾不断的生活。

(题外:这么多年过去了,虽然科技不断进步,但人类还是止步于月球。这个技术的瓶颈,真的是人类无法突破,还是智子让人类无法突破,值得深思。)

牧场假说

Docker build 的几种方式

build 的帮助文件中我们可以看到,docker build 不仅能支持本地 Dcokerfile 的构建,还可以从 URL 以及标准输入(-)中读取信息进行构建,下面就来说说 docker build 的几种构建方式。

[hzz@ TEST]$ docker build --help

Usage:  docker build [OPTIONS] PATH | URL | -

Build an image from a Dockerfile

Continue reading “Docker build 的几种方式”

Docker build 的几种方式

老虎岭水库骑行

2018年3月11日,天气阴,适合骑行。

也正好喜德盛长湖店有活动,所以便参加了人生第一次跟队骑行。(以前都是三五好友,或独自活动。)

因为新人比较多,所以骑得很休闲,距离和速度也把握得比较好。总之对于我来说,属于不是很累但已达到锻炼目的的那种程度,很好。

嗯,以后便少宅在窝里了,多出来走走看看也是极好的。

Continue reading “老虎岭水库骑行”

老虎岭水库骑行

Docker 常用命令简介

说是简介,其实也就是翻译+说明,加深一下自己印象的同时,也留个备份吧。

attach

Attach to a running container.
进入运行中的容器,显示该容器的控制台界面。注意,从该指令退出会导致容器关闭。

build

Build an image from a Dockerfile.
根据 Dockerfile 文件构建镜像。

commit

Create a new image from a container’s changes.
提交容器所更改的,创建为一个新的镜像。

Continue reading “Docker 常用命令简介”

Docker 常用命令简介

magedu pro 第七周作业

1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现;

脚本内容如下:

#!/usr/bin/env 

loginshell=$( /etc/|cut -d: -f7);

loginct=0;
nologinct=0;

for i in $loginshell;do
  if [[ "$i" == "/sbin/nologin" ]]; then
    let nologinct+=1;
  else
    let loginct+=1;
  fi
done

 "可登录的用户数为:$loginct";
 "不可登录的用户数为:$nologinct";

执行结果如下:

[hzz@ ~]$ bash test.sh 
可登录的用户数为:5
不可登录的用户数为:20
[hzz@ ~]$

Continue reading “magedu pro 第七周作业”

magedu pro 第七周作业

【补发】杭州-上海蜜月之旅

为什么说补发呢?因为这是发生在2018年1月3日到2018年1月6日的事情了。其实一直都想抽时间记录一下,但由于拖延癌晚期的缘故,事情挂了很久。今天趁着还有点记忆,赶紧将其写下。

为什么选择杭州-上海作为目的地呢?因为小芸有个很要好的同学在乌镇工作,被洗脑了N遍之后,一直想去乌镇看看。然后我有个表妹在上海,杭州离上海又很近,so……

好吧,开始言归正传,该发图了,总的来说还是蛮有意思的。

Continue reading “【补发】杭州-上海蜜月之旅”

【补发】杭州-上海蜜月之旅

Expect 远程执行检查函数

需安装 才能正常使用。

 install -y expect;
#!/usr/bin/env 
#expect 功能检查
set -e;

EXPECT_CHECK(){
  local EXUSR=${1}
  local EXHOST=${2}
  local EXPWD=${3}
  #ssh test
  EXP_RST=`
    expect -c "
      set timeout 300
      spawn ssh ${EXUSR}@${EXHOST} \" PASS\"
      expect {
        \"not known\" {send_user \"[exec  -e Erro:Host not known\n];exit\"}
        \"Connection refused\" {send_user \"[exec  -e Erro:Connection refused\n];exit\"}
        \"(yes/no)?\" {send \"yes\r\";exp_continue}
          \"password:\" {send \"${EXPWD}\r\";exp_continue}
        \"Permission denied\" {send_user \"[exec  -e Erro:Wrong \n];exit\"}
      }
    "| -E 'PASS|Erro'| -v | 's/\r//g;s/\n//g'
  `
  if [[ ${EXP_RST} && ${EXP_RST} == PASS ]]; then
     -e "\nEXPECT CHECK COMPLETE!\n";
    return 0;
  else
     -e "\n${EXUSR}@${EXHOST} EXPECT CHECK ERROR!\n";
     -e "\n${EXP_RST}\n";
    return 1;
  fi
}
Expect 远程执行检查函数

Bash 远程执行命令的函数

需安装 才能正常使用。

 install -y expect;
#!/usr/bin/env 
#远程执行命令
set -e;

EXPECT_SH(){
  local EXUSR=${1}
  local EXHOST=${2}
  local EXPWD=${3}
  local EXCMD=${4}
  expect -c "
    set timeout 300
    spawn ssh ${EXUSR}@${EXHOST}
    expect {
      \"not known\" {send_user \"[exec  -e Erro:Host not known\n];exit\"}
      \"Connection refused\" {send_user \"[exec  -e Erro:Connection refused\n];exit\"}
      \"(yes/no)?\" {send \"yes\r\";exp_continue}
      \"password:\" {send \"${EXPWD}\r\";exp_continue}
      \"Permission denied\" {send_user \"[exec  -e Erro:Wrong \n];exit\"}
      \"]*\" {send \"\r\"}
      \">*\" {send \"\r\"}
    }
    send \"${EXCMD}\rexit\r\"
    expect eof
  "
}
Bash 远程执行命令的函数