docker 安装单机MySQL使用nfs作为存储

#!/bin/bash

nfs_ip="xx.xx.xx.xx"
nfs_dir="/data/nfs/"

# 数据库存放在nfs共享目录下的文件夹名称
data_dir="mysql_data"
# 数据库存放于nfs服务器的完整路径
nfs_mysql_data="${nfs_dir}/${data_dir}"
# 数据库配置
mysql_root_pwd="xxxxxx"
MYSQL_USER="test"
MYSQL_PASSWORD="test"
MYSQL_DATABASE"test"
# 镜像名
image="mysql:5.7.40-oracle"
# 卷名
volume_name="mysql_nfs"
# 容器名
container_name="mysql"
# 本地映射的端口号
port="3306"

# 创建文件夹
tmp_dir=$(mktemp -d)
mount -t nfs ${nfs_ip}:${nfs_dir} ${tmp_dir}
if [ $? != 0 ]; then
  echo 'mount nfs server ERROR!'
  exit 1
else
  echo "mount ${nfs_ip}:${nfs_dir} succeeded!"
fi

dir="${tmp_dir}/${data_dir}"
if [ ! -d $dir ]; then
  echo "mkdir ${data_dir}"
  mkdir -p $dir
else
  echo 'dir ${data_dir} exists, ignore mkdir'
fi

umount ${tmp_dir}
if [ $? == 0 ]; then
  rm -r ${tmp_dir}
else
  echo "umount ${tmp_dir} ERROR!"
  exit 1
fi

docker volume create \
  --driver local \
  --opt type=nfs \
  --opt o=addr=${nfs_ip},nolock,rw,tcp \
  --opt device=${nfs_ip}:${nfs_mysql_data} \
  --name ${volume_name}

docker run -d --name ${container_name} \
  -p ${port}:3306 \
  -e MYSQL_ROOT_PASSWORD="${mysql_root_pwd}" \
  -e MYSQL_USER={MYSQL_USER} \
  -e MYSQL_PASSWORD=${MYSQL_PASSWORD} \
  -e MYSQL_DATABASE=${MYSQL_DATABASE} \
  -v ${volume_name}:/var/lib/mysql \
  ${image}

作者:xwjh

出处:https://www.cnblogs.com/xwjh/p/17141757.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   小维江湖  阅读(56)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up light_mode palette
选择主题