制作镜像实例之healthcheck
目录
1、介绍
2、实验如下:
2.1 准备NGINX镜像
2.2 mkdir /root/test 用于存放dockerfile文件的目录
2.3 cd /root/test
2.4 编写dockerfile文件,如下所示:
2.5 在dockerfile所在的目录准备test.sh文件
2.6 build构建镜像
3、检查并测试
3.3 进到容器改变index.html的名称
3.4 恢复index.html,查看healthcheck状态是否也恢复
1、介绍
Dockerfile中使用HEALTHCHECK的形式有两种:
HEALTHCHECK [options] CMD command(本次详细解释)
HEALTHCHECK NODE 意思是禁止从父镜像继承的HEALTHCHECK生效
下面我们主要介绍第一种形式的应用:
HEALTHCHECK [options] CMD command中的options有三个参数可设定:
- interval:间隔(s秒、m分钟、h小时),从容器运行起来开始计时interval秒(或者分钟小时)进行第一次健康检查,随后每间隔interval秒进行一次健康检查;还有一种特例请看timeout解析。
- timeout:执行command需要时间,比如curl 一个地址,如果超过timeout秒则认为超时是错误的状态,此时每次健康检查的时间是timeout+interval秒。
- retries:连续检查retries次,如果结果都是失败状态,则认为这个容器是unhealth的
- 注意:在Dockerfile中只能有一个HEALTHCHECK指令。如果您列出多个,则只有最后一个HEALTHCHECK将生效。
2、实验如下:
2.1 准备NGINX镜像
2.2 mkdir /root/test 用于存放dockerfile文件的目录
2.3 cd /root/test
2.4 编写dockerfile文件,如下所示:
[root@node03 test]# cat dockerfile
FROM nginx:latest
RUN echo "123456" > /root/test
COPY test.sh /root/test.sh
HEALTHCHECK --interval=2s --timeout=3s --retries=3 CMD /bin/bash /root/test.sh
[root@node03 test]#
- --interval=2s 间隔2s进行第一次健康检查
- --timeout=3s 执行command需要的时间,超过3s则认为是错误的
- --retries=3 检查的次数
2.5 在dockerfile所在的目录准备test.sh文件
[root@node03 test]# cat test.sh
#!/bin/bash
cd /usr/share/nginx/html
cat index.html 2>/dev/null 1>/dev/null
if [ $? -eq 0 ];then
exit 0
else
exit 1
fi
[root@node03 test]#
2表示错误重定向到/dev/null
1表示输出重定向到/dev/null
2.6 build构建镜像
[root@node03 test]# docker build -t nginx_health:latest .
3、检查并测试
3.1 查看构建的镜像
3.2 创建容器测试
[root@node03 test]# docker run -d --name 12 nginx_health
f74956d25a8e81b95382bc1e671781d2a3738c794df1a7a120b9abfa2107b407
[root@node03 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f74956d25a8e nginx_health "tail -F /qq" 5 seconds ago Up 4 seconds (healthy) 80/tcp 12
b2fc06408077 nginx "nginx -g 'daemon of…" About an hour ago Up About an hour 80/tcp 11
a9f954712172 centos "tail -F /qq/" 5 hours ago Up 5 hours test01
[root@node03 ~]#
【由上可知,状态正常】
3.3 进到容器改变index.html的名称
docker exec -it 12 /bin/bash
【将index.html的名称换成index.html.bak,查看healthcheck的状态】
docker ps
【由图上可知,healthcheck的状态已经改变,容器内的服务不可用,说明健康检测生效】
3.4 恢复index.html,查看healthcheck状态是否也恢复
(1)docker exec -it 12 /bin/bash
(2)再次查看healthcheck状态
docker ps
(3)完成
制作镜像实例之healthcheck相关推荐
- 制作镜像实例之ENV命令 - 设置环境变量
1.创建dockerfile文件存放目录 mkdir /test cd /test 2.创建tar.gz文件 touch /root/{1..10}.txt cd /root tar zcvf tes ...
- openstack导出实例,制作镜像
单位大哥,提供的制作镜像方案,比直接做镜像,占用空间小很多,还很方便. openstack在线制作镜像步骤: 1.将指定虚拟机配置好后关机 2.对此虚拟机"创建快照",之后会跳转到 ...
- 借助Docker hub自己手动制作镜像(以Nginx镜像为例)
借助Docker hub自己手动制作镜像(以Nginx镜像为例) 前言 一.Docker hub是什么? 二.镜像制作步骤 1.进入Docker hub官网,获取源文件 2.制作镜像 3.验证镜像 总 ...
- (三)Docker----基础镜像(制作镜像),实现动静分离,本地镜像上传docker仓库
文章目录 一. Docker 镜像与制作 手动制作nginx 镜像(不建议) DockerFile 制作nginx 镜像(建议) 手动制作编译版本 nginx 镜像(不建议) 提交为镜像: 装数据库 ...
- docker 制作镜像并发布到阿里云公有仓库
大致操作步骤如下: 1.首先在阿里云创建镜像仓库 2.然后再本地制作镜像文件 3.把本地镜像文件推送到阿里云镜像仓库 4.其他云服务器进行阿里云镜像仓库拉取 5.启动容器 阿里云登录 - 欢迎登录阿里 ...
- Openstack 之 使用disk-image-builder(DIB)制作镜像
Openstack中的centos和ubuntu操作系统的镜像可以直接从社区直接下载下来使用,但是总是感觉有问题,cloud-init初始化程序是通用的,启动速度很慢,查了一下相关信息,发现是clou ...
- redash二次开发和制作镜像
简介: 上一篇文章,我们简单的测试了一下服务器环境和docker基础镜像.并没有涉及我们自己编写的flask python程序. 现在,我们就要把我们自己的flask程序,放进docker镜像. 但是 ...
- docker制作镜像篇(基于容器)
docker制作镜像可以有两种方式: 一.基于容器(使用busybox制作http镜像) 1.首先运行一个容器 2.在容器当中配置自己的http,添加web目录,增加主页文件等. 3.查看原busyb ...
- 【制作镜像】BCEC制作镜像
如要制作的新镜像已存在标准版本镜像,即linux发行版本相同(此处指CentOS6.5 64位),可利用BCEC制作. 在BCEC创建centos6.5系统的可联外网的虚机,ssh到此虚机,用yum方 ...
最新文章
- form中的onblur事件简单的介绍
- js实现页面跳转重定向的几种方式
- 漫画:Integer 竟然有 4 种比较方法?
- C++基础14-类和对象之多继承与虚继承
- 【clickhouse】Clickhouse 的group_concat 实现
- TCP慢开始与拥塞避免
- B站游戏大佬飘了?深挖B站辱北邮事件经过:不是第一次
- 轻量级网页安全漏洞扫描工具-Wapiti
- python滑稽脸程序
- win10下安装ubuntu双系统
- 用Python3抓取并分析猫眼电影TOP100
- 海南大学信号与系统838报考高频问题整理(4)
- NAND Flash(spi nand flash和nand flash)和emmc以及ufs通过uboot烧写固件的一些差异
- gps android 卫星位置,Android手机GPS获取卫星数量不正确问题
- Intel D435深度相机“No Frames Received!“问题
- 如何用Sonic云真机打王者
- android-4集成高德地图的搜索和导航功能
- 关于stm32的VCP技术原理
- ESXi修改网卡名称
- 计算机动画制作流程文字版,常见的三维动画制作流程总结
热门文章
- 计算机原理期中考试,计算机原理期中试卷(单招)
- python支持复数类型以下什么说法是错误的_python测试开发面试题1
- ManageCategories.cs
- 适用于linux的解压工具,Linux系统中常用的压缩和解压缩工具
- 100部好看的校园喜剧片
- 1188_什么是TVS管_瞬态抑制二极管
- 数据库的增删查改(全部重点知识一篇整合,包括数据库查询的进阶内容)
- Moore-Penrose伪逆
- 地震灾后36天!!成都彭州市龙门山镇团山村的一头肥猪废墟存活36天续:获名朱坚强将在博物馆终老
- 红日靶场vulnstack1 内网渗透学习