Docker编写脚本实现应用容器重启

Docker编写脚本试下容器重启:支持windows 和Linux。

脚本目录结构

Windows bat批处理文件:restart.bat

@echo off
echo 重启Docker容器:rtvsweb-publish....
  docker restart rtvsweb-publish
  if errorlevel 0 (echo 执行成功) else echo 执行失败
echo 按任意键结束 自动关闭 restart.bat

pause
exit

注意:编辑格式要另存为ANSI格式,否则执行可能会报错。

Linux sh 脚本文件:restart.sh

#! /bin/bash
echo "重启Docker容器:rtvsweb-publish"
docker restart rtvsweb-publish
if [[ $? -eq 0 ]]; then
	echo "执行成功!"
else
	echo "执行失败!"
	exit
fi
echo "重启Docker容器:rtvsweb-publish 完毕!"

 

 

Docker中,通常容器会在应用或服务崩溃时自动重启。如果你希望无论容器内部运行的服务是否崩溃,容器都能在特定时间自动重启,可以通过一些额外的脚本或工具来实现这个功能。 一个简单的方法是使用`crontab`结合`docker`命令来定时重启容器。首先,你需要编写一个脚本,这个脚本会检查容器的状态,并在需要的时候重启容器。然后,你可以将这个脚本设置为定时任务执行。 以下是实现该功能的基本步骤: 1. 编写一个Shell脚本脚本内容大致如下: ```bash #!/bin/bash # 检查容器是否在运行 container_name="你的容器名" # 如果容器不在运行,则启动容器 if ! docker inspect -f '{{.State.Running}}' "$container_name" > /dev/null 2>&1; then docker start "$container_name" fi ``` 2. 将这个脚本保存到一个文件中,比如`restart_container.sh`。 3. 设置Cron定时任务,以root用户的身份编辑crontab文件: ```bash sudo crontab -e ``` 4. 添加一行定时任务来定期执行你的脚本。例如,如果你想每天凌晨3点自动检查并重启容器,可以添加如下行: ```bash 0 3 * * * /path/to/restart_container.sh > /dev/null 2>&1 ``` 确保将`/path/to/restart_container.sh`替换为你的脚本实际的路径。 5. 保存并退出编辑器,Cron将自动加载新的定时任务。 需要注意的是,这种方法并不是Docker官方推荐的做法,因为Docker原生的容器重启策略已经很强大,通常用于处理大多数的自动重启需求。如果容器内部的服务应该在出错后自行重启,那么应该在容器内或容器镜像中进行设置,而不是依赖外部脚本实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值