本帖最后由 堡塔运维小林 于 2023-10-11 10:37 编辑
以下是一个监控并自动重启除指定Docker容器外的其他容器的Linux Shell脚本,您可以根据实际情况进行调整:
- #!/bin/bash
- # 定义需要排除的Docker容器名称
- excluded_container_name="your-excluded-container-name"
- # 获取正在运行的所有Docker容器名称
- containers=$(docker ps -a --format '{{.Names}}')
- # 循环检查所有容器是否正在运行
- for container_name in $containers
- do
- # 如果容器名称不等于需要排除的容器名称
- if [ "$container_name" != "$excluded_container_name" ]; then
- # 检查容器是否正在运行
- if [ "$(docker ps -q -f name=$container_name)" ]; then
- echo "[INFO] $container_name is running."
- else
- echo "[WARNING] $container_name is not running. Restarting..."
- # 如果容器停止,则使用Docker启动容器
- docker start $container_name
- fi
- fi
- done
复制代码上述脚本首先定义了需要排除的Docker容器名称,然后通过docker ps命令获取所有正在运行的Docker容器名称。接着,循环检查每个容器是否正在运行,如果容器名称不等于需要排除的容器名称,则使用docker ps命令检查容器是否正在运行。如果容器正在运行,则输出信息表示一切正常;如果容器停止,则输出警告信息并使用docker start命令重启该容器。 注意:在使用该脚本前,请确保您的Linux服务器已经安装了Docker并启动了Docker服务。另外,您需要将your-excluded-container-name替换为您要排除的Docker容器名称
|