帮我写一个shell,用于docker容器的启动、停止和重启
时间: 2024-03-12 16:46:40 浏览: 11
好的,以下是一个简单的 shell 脚本,用于启动、停止和重启 Docker 容器:
```bash
#!/bin/bash
# 定义变量
CONTAINER_NAME="your_container_name"
IMAGE_NAME="your_image_name"
# 启动容器
function start_container() {
if docker ps | awk -v container="$CONTAINER_NAME" 'NR>1{ ($(NF) == container ) }'; then
echo "容器 $CONTAINER_NAME 已经在运行中"
else
docker start $CONTAINER_NAME || docker run --name $CONTAINER_NAME -d $IMAGE_NAME
echo "容器 $CONTAINER_NAME 启动成功"
fi
}
# 停止容器
function stop_container() {
if docker ps | awk -v container="$CONTAINER_NAME" 'NR>1{ ($(NF) == container ) }'; then
docker stop $CONTAINER_NAME
echo "容器 $CONTAINER_NAME 停止成功"
else
echo "容器 $CONTAINER_NAME 已经停止"
fi
}
# 重启容器
function restart_container() {
docker restart $CONTAINER_NAME
echo "容器 $CONTAINER_NAME 重启成功"
}
# 执行命令
case "$1" in
start)
start_container
;;
stop)
stop_container
;;
restart)
restart_container
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0
```
使用方法:
1. 将上述代码保存为脚本文件(例如,`docker.sh`);
2. 在脚本文件所在的目录下打开终端;
3. 输入 `chmod +x docker.sh` 命令,将脚本文件设置为可执行;
4. 执行 `./docker.sh start` 命令启动容器,执行 `./docker.sh stop` 命令停止容器,执行 `./docker.sh restart` 命令重启容器。
这个脚本中,`CONTAINER_NAME` 变量和 `IMAGE_NAME` 变量分别表示容器的名称和镜像的名称(需要替换为实际的容器名称和镜像名称)。在脚本中,我们定义了三个函数 `start_container()`、`stop_container()` 和 `restart_container()`,分别用于启动、停止和重启容器。最后,我们使用 `case` 语句来根据用户的输入执行相应的函数。