原创

docker创建mycat2

温馨提示:
本文最后更新于 2025年10月24日,已超过 231 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

 脚本  newMycat2.sh

#!/bin/bash
# 抽取的变量
CONTAINER_NAME="mycat2"
IMAGE_NAME="127.0.0.1:8082/mycat2:1.2.1"
DATA_DIR="/mydata/mycat2"
PORT_8066="8066"
PORT_1984="1984"
DATA_SOURCE_URL="jdbc:mysql://175.27.164.2:3323/mysql"
DATA_SOURCE_USER="root"
DATA_SOURCE_PASSWORD="root"
MYCAT_ROOT_PASSWORD="rm1p*"

echo "【1/6】检查并停止已存在的${CONTAINER_NAME}容器..."
# 检查并停止已存在的mycat2容器
if docker ps -a --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then
    echo "检测到已存在的${CONTAINER_NAME}容器,是否继续安装?(y/Y 继续,其他字符终止)"
    read -r choice
    if [[ "$choice" != "y" && "$choice" != "Y" ]]; then
        echo "操作已取消,脚本退出。"
        exit 1
    else
        echo "继续安装..."
        docker stop ${CONTAINER_NAME} && docker rm ${CONTAINER_NAME}
    fi
else
    echo "未检测到已存在的${CONTAINER_NAME}容器"
fi

echo "【2/6】创建${CONTAINER_NAME}数据目录..."
mkdir -p ${DATA_DIR}

echo "【3/6】启动临时${CONTAINER_NAME}容器..."
# 运行mycat2
docker run -d --name=${CONTAINER_NAME} -p ${PORT_8066}:${PORT_8066} -p ${PORT_1984}:${PORT_1984} ${IMAGE_NAME}

echo "【4/6】复制配置文件和日志文件..."
# 复制配置文件
docker cp ${CONTAINER_NAME}:/usr/local/mycat/conf ${DATA_DIR}/conf
# 复制日志文件
docker cp ${CONTAINER_NAME}:/usr/local/mycat/logs ${DATA_DIR}/logs

echo "【5/6】停止临时容器..."
sleep 2
docker stop ${CONTAINER_NAME}
docker rm ${CONTAINER_NAME}

echo "【6/6】启动正式${CONTAINER_NAME}容器..."
# 启动mycat2
docker run -d -p ${PORT_8066}:${PORT_8066} -p ${PORT_1984}:${PORT_1984} \
  -e DATA_SOURCE_URL=${DATA_SOURCE_URL} \
  -e DATA_SOURCE_USER=${DATA_SOURCE_USER} \
  -e DATA_SOURCE_PASSWORD=${DATA_SOURCE_PASSWORD} \
  -e MYCAT_ROOT_PASSWORD=${MYCAT_ROOT_PASSWORD} \
  -v ${DATA_DIR}/conf:/usr/local/mycat/conf/ \
  -v ${DATA_DIR}/logs:/usr/local/mycat/logs/ \
  --name ${CONTAINER_NAME} ${IMAGE_NAME}

echo "${CONTAINER_NAME}部署完成!"


使用方法

## 使用方法

### 1. 脚本执行
```bash
# 给脚本添加执行权限
chmod +x newMycat2.sh

# 运行脚本
./newMycat2.sh
```


### 2. 脚本功能说明

该脚本用于自动化部署 `mycat2` 容器,主要包含以下步骤:

- **容器检查**: 检查是否存在已运行的 `mycat2` 容器
- **数据目录创建**: 创建 `/mydata/mycat2` 目录用于持久化存储
- **临时容器启动**: 启动临时容器以获取配置文件
- **配置文件复制**: 从容器中复制 `conf` 和 `logs` 目录到本地
- **正式容器部署**: 启动配置好的正式 `mycat2` 容器

### 3. 交互提示

当检测到已存在的 `mycat2` 容器时,脚本会提示:
```
检测到已存在的mycat2容器,是否继续安装?(y/Y 继续,其他字符终止)
```

- 输入 `y` 或 `Y`:继续安装,自动停止并删除旧容器
- 输入其他字符:取消操作并退出脚本

### 4. 配置参数

脚本中的关键配置参数:
- `CONTAINER_NAME`: 容器名称
- `IMAGE_NAME`: 镜像名称和版本
- `DATA_DIR`: 数据存储目录
- `PORT_8066` 和 `PORT_1984`: 映射端口
- 数据库连接信息:`DATA_SOURCE_URL`、`DATA_SOURCE_USER`、`DATA_SOURCE_PASSWORD`
- `MYCAT_ROOT_PASSWORD`: Mycat管理密码
正文到此结束