#!/bin/bash # Redis容器名称 CONTAINER_NAME="redis" # Redis版本 REDIS_VERSION="7.0.2" # 映射端口(主机:容器) PORT="6379:6379" # 密码 REDIS_PASSWORD="tdjj2HH0fva^2R" # 网络配置 NETWORK="scm-net" # 容器IP CONTAINER_IP="172.20.0.2" # 部署Redis deploy() { if [ "$(docker ps -q -f name=$CONTAINER_NAME)" ]; then echo "Redis容器 $CONTAINER_NAME 已存在并运行中" return 1 fi if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then echo "发现已停止的Redis容器,正在启动..." docker start $CONTAINER_NAME return 0 fi echo "开始部署Redis容器..." docker run -itd --restart always \ --net=$NETWORK --ip=$CONTAINER_IP \ -p $PORT \ --name $CONTAINER_NAME \ redis:$REDIS_VERSION \ --requirepass $REDIS_PASSWORD if [ $? -eq 0 ]; then echo "Redis容器部署成功!" echo "容器名称: $CONTAINER_NAME" echo "映射端口: $PORT" else echo "Redis容器部署失败!" fi } # 查看日志 logs() { if [ ! "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then echo "Redis容器 $CONTAINER_NAME 不存在" return 1 fi echo "查看Redis容器日志 (按Ctrl+C退出)..." docker logs -f --tail 200 $CONTAINER_NAME } # 重启容器 restart() { if [ ! "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then echo "Redis容器 $CONTAINER_NAME 不存在" return 1 fi echo "正在重启Redis容器..." docker restart $CONTAINER_NAME if [ $? -eq 0 ]; then echo "Redis容器重启成功!" else echo "Redis容器重启失败!" fi } # 删除容器 remove() { if [ ! "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then echo "Redis容器 $CONTAINER_NAME 不存在" return 1 fi echo "警告:此操作将删除Redis容器" read -p "确定要删除吗?(y/n) " confirm if [ "$confirm" != "y" ] && [ "$confirm" != "Y" ]; then echo "取消删除操作" return 0 fi echo "正在停止并删除Redis容器..." docker stop $CONTAINER_NAME docker rm $CONTAINER_NAME if [ $? -eq 0 ]; then echo "Redis容器删除成功!" else echo "Redis容器删除失败!" fi } # 显示帮助 show_help() { echo "Redis容器管理脚本" echo "用法: $0 [命令]" echo "命令列表:" echo " deploy - 部署并启动Redis容器" echo " logs - 查看Redis容器日志" echo " restart - 重启Redis容器" echo " remove - 删除Redis容器" echo " help - 显示帮助信息" } # 主逻辑 case "$1" in deploy) deploy ;; logs) logs ;; restart) restart ;; remove) remove ;; help) show_help ;; *) echo "未知命令: $1" show_help exit 1 ;; esac