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管理密码
正文到此结束
- 本文标签: Java
- 本文链接: http://119.91.109.247:8443//article/147
- 版权声明: 本文由张亚东原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权