当前位置: 首页 > news >正文

傻瓜式启动关闭重启docker容器的脚本

运行脚本后,界面如下:

选择对应的编号后,会列举所有关闭的容器或者所有开启的容器列表,当我要启动一个容器 时输入1,就会出现下面的页面。

然后输入指定的编号后,就会启动对应的容器。

脚本代码如下:

#!/bin/bashfunction show_running_containers() {runningContainers=$(docker ps --format "table {{.ID}}\t{{.Names}}" | awk 'NR>1' | nl)echo "运行中的容器:"echo "$runningContainers"
}function show_stopped_containers() {stoppedContainers=$(docker ps -a --filter "status=exited" --format "table {{.ID}}\t{{.Names}}" | awk 'NR>1' | nl)echo "关闭的容器:"echo "$stoppedContainers"
}function start_container() {show_stopped_containersread -p "请输入要启动的容器编号(输入0退出): " userInputif [ "$userInput" -eq 0 ]; thenecho "退出脚本"elsecontainerId=$(docker ps -a --filter "status=exited" -q | sed -n "${userInput}p")if [ -n "$containerId" ]; thenecho "正在启动容器:$containerId"if docker start $containerId &> /dev/null; thenecho "容器启动成功"elseecho "容器启动失败,原因:$(docker inspect -f '{{.State.Status}}' $containerId)"fielseecho "输入无效,未找到对应编号的容器"fifi
}function stop_container() {show_running_containersread -p "请输入要关闭的容器编号(输入0退出): " userInputif [ "$userInput" -eq 0 ]; thenecho "退出脚本"elsecontainerId=$(docker ps -q | sed -n "${userInput}p")if [ -n "$containerId" ]; thenecho "正在关闭容器:$containerId"if docker stop $containerId &> /dev/null; thenecho "容器关闭成功"elseecho "容器关闭失败,原因:$(docker inspect -f '{{.State.Status}}' $containerId)"fielseecho "输入无效,未找到对应编号的容器"fifi
}function restart_container() {show_running_containersread -p "请输入要重启的容器编号(输入0退出): " userInputif [ "$userInput" -eq 0 ]; thenecho "退出脚本"elsecontainerId=$(docker ps -q | sed -n "${userInput}p")if [ -n "$containerId" ]; thenecho "正在重启容器:$containerId"if docker restart $containerId &> /dev/null; thenecho "容器重启成功"elseecho "容器重启失败,原因:$(docker inspect -f '{{.State.Status}}' $containerId)"fielseecho "输入无效,未找到对应编号的容器"fifi
}function force_delete_container() {show_running_containersread -p "请输入要强制删除的容器编号(输入0退出): " userInputif [ "$userInput" -eq 0 ]; thenecho "退出脚本"elsecontainerId=$(docker ps -q | sed -n "${userInput}p")if [ -n "$containerId" ]; thenecho "正在强制删除容器:$containerId"if docker rm -f $containerId &> /dev/null; thenecho "容器删除成功"elseecho "容器删除失败"fielseecho "输入无效,未找到对应编号的容器"fifi
}while true; doecho "请选择操作:"echo "1. 启动容器"echo "2. 关闭容器"echo "3. 重启容器"echo "4. 强制删除容器"echo "0. 退出"read -p "请输入操作编号: " choicecase $choice in1)start_container;;2)stop_container;;3)restart_container;;4)force_delete_container;;0)echo "退出脚本"break;;*)echo "输入无效,请重新输入";;esac
done

将代码写进一个sh文件。然后启动后,即可使用。

点点关注,点点赞呀。持续更新有用的知识................................................ 

 

 

http://www.lryc.cn/news/327763.html

相关文章:

  • R语言使用dietaryindex包计算NHANES数据多种营养指数(2)
  • Elasticsearch 索引模板、生命周期策略、节点角色
  • buy me a btc 使用数字货币进行打赏赞助
  • Solidity Uniswap V2 Router swapTokensForExactTokens
  • 网络安全渗透测试工具
  • springcloud+nacos服务注册与发现
  • 【C++程序员的自我修炼】基础语法篇(一)
  • 小狐狸JSON-RPC:钱包连接,断开连接,监听地址改变
  • union在c语言中什么用途
  • 2024年华为OD机试真题- 寻找最优的路测线路-Java-OD统一考试(C卷)
  • WPF 多路绑定、值转换器ValueConvert、数据校验
  • 【Linux多线程】线程的同步与互斥
  • Linux网卡bond的七种模式详解
  • 【学习笔记】java项目—苍穹外卖day01
  • C++之STL整理(2)之vector超详用法整理
  • 机器学习作业二之KNN算法
  • 笔记81:在服务器中运行 Carla 报错 “Disabling core dumps.”
  • ensp中pc机访问不同网络的服务器
  • CSGO赛事管理系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)
  • win10微软拼音输入法 - bug - 在PATH变量为空的情况下,无法输入中文
  • Java安全篇-Fastjson漏洞
  • Flink系列之:Flink SQL Gateway
  • Linux基础篇:解析Linux命令执行的基本原理
  • LeetCode-热题100:153. 寻找旋转排序数组中的最小值
  • 游戏客户客户端面经
  • 网站业务对接DDoS高防
  • Python-VBA编程500例-024(入门级)
  • 蓝桥杯 - 小明的背包1(01背包)
  • 学习java第二十六天
  • Go第三方框架--gin框架(二)