帮我写一个自动启停docker容器的shell脚本
时间: 2023-07-13 11:35:22 浏览: 106
好的,以下是一个简单的自动启停Docker容器的Shell脚本:
```
#!/bin/bash
# 定义变量
CONTAINER_NAME="my-container" # 容器名称
IMAGE_NAME="my-image" # 镜像名称
DOCKERFILE_PATH="/path/to/Dockerfile" # Dockerfile文件路径
DOCKERFILE_DIR=$(dirname $DOCKERFILE_PATH) # Dockerfile所在目录
# 检查容器是否已经运行
if [ "$(docker ps -q -f name=$CONTAINER_NAME)" ]; then
# 如果容器已经运行,停止并删除容器
echo "Stopping and removing container: $CONTAINER_NAME"
docker stop $CONTAINER_NAME
docker rm $CONTAINER_NAME
fi
# 检查镜像是否存在,如果不存在则构建镜像
if [ ! "$(docker images -q $IMAGE_NAME)" ]; then
# 如果镜像不存在,构建镜像
echo "Building image: $IMAGE_NAME"
docker build -t $IMAGE_NAME $DOCKERFILE_DIR
fi
# 启动容器
echo "Starting container: $CONTAINER_NAME"
docker run -d --name $CONTAINER_NAME -p 80:80 $IMAGE_NAME
```
上述脚本包含了以下几个步骤:
1. 定义变量:定义了容器名称、镜像名称、Dockerfile文件路径等变量。
2. 检查容器是否已经运行:使用`docker ps`命令检查容器是否已经运行,如果已经运行,则停止并删除容器。
3. 检查镜像是否存在:使用`docker images`命令检查镜像是否已经存在,如果不存在,则使用`docker build`命令构建镜像。
4. 启动容器:使用`docker run`命令启动容器,并将容器端口映射到主机的80端口上。
您可以将上述代码保存为一个`.sh`文件,并使用`chmod +x`命令将其设置为可执行文件,然后在命令行中执行该脚本即可自动启停Docker容器。
阅读全文