Linux脚本 - Docker离线安装Mysql

  1. 下载 MySQL Docker 镜像(联网环境中完成):
// 下载执行版本docker镜像
docker pull mysql:5.7
// 导出mysql镜像文件
docker save -o /root/mysql5.7.tar mysql
  1. 离线包和脚本放在同一目录下
  2. 脚本授权:chmod 755 install_mysql.sh
  3. 执行脚本,等待输出提示
#!/bin/bash

# 变量定义
IMAGE_FILE="mysql5.7.tar"
CONTAINER_NAME="mysql5.7"
MYSQL_ROOT_PASSWORD="Microvideo@2022"
LOG_DIR="/docker/mysql/log"
DATA_DIR="/docker/mysql/data"
CONFIG_DIR="/docker/mysql/config"
CONFIG_FILE="my.cnf"

# 确保目录存在
echo "[INFO] 确保日志、数据和配置目录存在..."
mkdir -p "$LOG_DIR" "$DATA_DIR" "$CONFIG_DIR"

# 检查并移动 my.cnf 配置文件到指定目录
if [[ -f "$CONFIG_FILE" ]]; then
    echo "[INFO] 复制 my.cnf 配置文件到指定目录..."
    cp -f "$CONFIG_FILE" "$CONFIG_DIR/"
else
    echo "[ERROR] 找不到配置文件: $CONFIG_FILE"
    exit 1
fi

# 设置目录权限
echo "[INFO] 设置目录权限..."
chmod -R 755 "$LOG_DIR"
chmod -R 755 "$DATA_DIR"
chmod -R 755 "$CONFIG_DIR"

# 检查 MySQL 镜像文件是否存在
if [[ -f "$IMAGE_FILE" ]]; then
    echo "[INFO] 加载 MySQL 镜像..."
    docker load -i "$IMAGE_FILE"
else
    echo "[ERROR] 找不到 MySQL 镜像文件: $IMAGE_FILE"
    exit 1
fi

# 检查 Docker 是否已经运行容器
if docker ps -a --format '{{.Names}}' | grep -q "$CONTAINER_NAME"; then
    echo "[INFO] 容器 $CONTAINER_NAME 已经存在,删除旧容器..."
    docker rm -f "$CONTAINER_NAME"
fi

# 运行 MySQL 容器
echo "[INFO] 启动 MySQL 容器..."
docker run -p 3306:3306 \
  --name "$CONTAINER_NAME" \
  --restart=always \
  --privileged=true \
  -v "$DATA_DIR:/var/lib/mysql" \
  -v "$CONFIG_DIR/my.cnf:/etc/my.cnf" \
  -v /etc/localtime:/etc/localtime:ro \
  -v /etc/timezone:/etc/timezone:ro \
  -e MYSQL_ROOT_PASSWORD="$MYSQL_ROOT_PASSWORD" \
  -d mysql:5.7 --lower-case-table-names=1

# 验证容器是否启动成功
echo "[INFO] 验证 MySQL 容器是否启动..."
if docker ps | grep -q "$CONTAINER_NAME"; then
    echo "[INFO] MySQL 容器启动成功"
else
    echo "[ERROR] MySQL 容器启动失败"
    exit 1
fi

my.cnf 模板文件

# 客户端标识
[client]
# 默认连接端口                
port=3306

# 设置客户端的默认字符集为utf8
default-character-set=utf8

# 设置客户端的连接超时时间为600秒
connect-timeout=600

# 设置客户端的最大封包大小为16M
max_allowed_packet=16M



# 服务器标识
[mysqld]
# 设置服务器的默认字符集为utf8
character-set-server=utf8

# 设置服务器默认的存储引擎为InnoDB
default-storage-engine=InnoDB

# 设置服务器的处理器缓冲区大小为256M
innodb_buffer_pool_size=256M

# 设置服务器的最大连接数为1000
max_connections=1000

# 设置服务器的日志文件路径和名称
#log-error=/var/log/mysql/error.log

# 设置服务器的错误日志级别为警告
log-error-verbosity=2

# 设置服务器的数据目录
datadir=/var/lib/mysql

# 设置服务器的临时文件路径
tmpdir=/tmp

# 设置服务器的超时时间为600秒
wait_timeout=600

# 设置服务器的默认排序规则为utf8_general_ci
collation-server=utf8_general_ci

# 设置服务器的查询缓存大小为64M
query_cache_size=64M

# 设置服务器的最大临时表数量为1000
max_tmp_tables=1000

# 设置服务器的最大排序缓冲区大小为4M
max_sort_length=4M

# 设置访问
bind-address=0.0.0.0

# 设置sql_mode
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

# 禁用主机名解析
skip-name-resolve



### 回答1: CentOS 是一种广泛使用的Linux操作系统,而NVIDIA-Docker是一个用于在容器中运行GPU加速应用程序的工具。对于在没有互联网连接的环境中安装NVIDIA-Docker,可以通过以下步骤进行离线安装。 1. 从NVIDIA官方网站下载所需的NVIDIA-Docker离线安装包(tar文件),包括NVIDIA-Docker的二进制文件和依赖项。确保选择适用于CentOS的正确版本。 2. 将下载的安装包传输到CentOS服务器上,可以使用U盘、移动硬盘等离线传输设备。 3. 在CentOS服务器上创建一个新的目录,用于解压下载的安装包。例如,可以使用以下命令创建一个名为nvidia-docker的目录: ``` mkdir nvidia-docker ``` 4. 将下载的安装包移动到nvidia-docker目录中。 5. 进入nvidia-docker目录并解压安装包。可以使用以下命令解压: ``` tar -xvf <安装包文件名>.tar.gz ``` 6. 解压后,进入解压得到的目录中,例如: ``` cd nvidia-docker-<版本号> ``` 7. 执行安装脚本以进行NVIDIA-Docker离线安装。可以使用以下命令运行安装脚本: ``` ./install.sh ``` 8. 安装脚本会检查并安装NVIDIA-Docker所需要的依赖项,并将NVIDIA-Docker设置为默认的容器运行时。 9. 完成安装后,可以通过运行以下命令验证NVIDIA-Docker是否正确安装: ``` nvidia-docker run --rm nvidia/cuda nvidia-smi ``` 如果成功运行,并显示了GPU的信息,那么NVIDIA-Docker已成功安装并可以在离线环境中使用了。 请注意,离线安装可能需要手动处理依赖项,例如安装适当的驱动程序和库文件。因此,在进行离线安装之前,请确保已阅读官方文档并了解所需的所有依赖项。 ### 回答2: 在离线环境下安装NVIDIA-Docker,我们需要进行以下步骤: 1. 准备离线环境所需的安装包和资源: - NVIDIA-Docker的安装包(.run文件) - NVIDIA的驱动程序(.run文件) - Docker的安装包(.tar文件) - Docker镜像所需的显卡驱动(可从其他在线环境中提取) 2. 在离线机器上安装依赖项: - 首先,确保离线机器的操作系统为CentOS,并且已经安装了gcc、kernel-devel和kernel-headers等依赖包。 - 然后,通过运行NVIDIA驱动程序的.run文件来安装NVIDIA驱动。 3. 安装Docker: - 将Docker的.tar文件复制到离线机器上的目录中。 - 使用`tar -xvf`命令解压文件。 - 将解压后的文件夹复制到/usr/bin目录下,确保Docker可执行文件可用。 4. 安装NVIDIA-Docker: - 将离线机器连接到互联网,下载并复制NVIDIA-Docker的安装包(.run文件)到离线机器上。 - 运行`chmod +x`命令赋予文件可执行权限。 - 运行`.run`文件来安装NVIDIA-Docker。 5. 配置NVIDIA-Docker: - 在/etc/docker/daemon.json文件中添加`"runtimes": {"nvidia": {"path": "/usr/bin/nvidia-container-runtime","runtimeArgs": []}}`,以告知Docker使用NVIDIA运行时。 - 通过运行`systemctl restart docker`重新启动Docker服务。 6. 验证安装: - 运行`docker run --gpus all nvidia/cuda:11.0-base nvidia-smi`命令,如果成功显示GPU信息,则表示安装成功。 需要注意的是,由于离线环境无法直接从互联网下载所需的安装包和资源,因此需要从其他在线环境中提取,并在离线机器上复制和安装。另外,要根据具体的硬件和软件版本来选择正确的驱动程序和安装包。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值