Centos /Linux环境下利用Docker 安装mysql5.7镜像(含离线安装),启动mysql镜像并初始化数据库

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

Docker 安装mysql镜像,含离线

Docker 安装mysql镜像(含离线)

准备mysql的Docker镜像需要在有网的服务器中下载

  1. 使用有网的服务器下载好镜像

    docker pull mysql:5.7 
    
  2. 保存下载好的镜像成tar

    docker images
    docker save imageid > mysql5.7
    ll
    

    在这里插入图片描述

将准备好tar导入到docker镜像

  1. 将镜像上传到所需服务器放在固定位置

  2. 导入镜像

    docker load <mysql5.7
    

    注意名称这里的mysql5.7和上面打包docker save imageid > mysql5.7的名称一致本例未改名

    在这里插入图片描述

  3. 查看导入的镜像并重新命名镜像

    docker images
    docker tag imageid mysql:5.7
    

    在这里插入图片描述

Docker启动mysql镜像并初始化数据库

Docker启动MySQL镜像

  1. 创建本地数据库目录、配置文件以及日志目录方便进行容器数据卷挂载

    mkdir -p /home/app/mysql/data /home/app/mysql/logs /home/app/mysql/conf
    
  2. 启动镜像

    docker run --name mysql -p 3306:3306 -v /home/app/mysql/data:/var/lib/mysql -v /home/app/mysql/conf:/etc/mysql/conf.d -v /home/app/mysql/logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD=123456 -d eef0fab001e8
    

    -p 3306:3306 :端口映射将宿主机3306端口与容器3306端口做映射
    格式-p 宿主机端口:容器端口

    –name mysql : 指定容器名字为mysql也可以不指定不指定没有容器名字

    数据容器卷挂载
    -v /home/app/mysql/data:/var/lib/mysql 对宿主机数据库目录与容器数据库目录进行映射挂载
    -v /home/app/mysql/conf:/etc/mysql/conf.d对宿主机数据库配置文件与容器数据库配置文件进行映射挂载
    -v /home/app/mysql/logs:/var/log/mysql对宿主机数据库日志与容器数据库日志进行映射挂载
    -e MYSQL_ROOT_PASSWORD=123456 :配置mysql的root账号的密码为123456可以根据需要自行修改密码
    -d:后台执行
    eef0fab001e8 镜像id容器第一次启动要根据镜像来启动所以镜像id必不可少。可以通过命令docker iamges查看镜像id

    在这里插入图片描述

Docker初始化数据库

有网配置非必要按需修改

  1. 进入到bash

    docker exec -it eef0fab001e8 bin/bash
    

    eef0fab001e8 镜像id容器第一次启动要根据镜像来启动所以镜像id必不可少。可以通过命令docker iamges查看镜像id

  2. docker 安装vim有网

    apt-get update
    apt-get install vim
    
  3. 修改mysql的配置非必要按需修改

    vi /etc/my.cnf
    

    修改的内容为

    character-set-server=utf8
    max_connections = 5000
    log_bin_trust_function_creators=1
    lower_case_table_names = 1
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    transaction_isolation = READ-COMMITTED
    group_concat_max_len = 102400 
    

    退出 bash (2 种操作) 1Ctrl + d 退出容器也可直接输入exit 2Ctrl + p + q 退出并在后台运行容器

  4. 重启 docker 容器

    docker restart [容器名]
    

无网配置非必要按需修改

  1. 进入到bash

    docker exec -it eef0fab001e8 bin/bash
    

    eef0fab001e8 镜像id容器第一次启动要根据镜像来启动所以镜像id必不可少。可以通过命令docker iamges查看镜像id

  2. docker 配置my.cnf非必要按需修改【直接拷贝需重启】

    复制/root/mysql_db_back/下的my.cnf文件到容器中的etc目录下

    docker cp /root/mysql_db_back/my.cnf mysql:/etc
    

    重启 docker 容器

    docker restart [容器名]
    
  3. 检查参数配置

    SHOW VARIABLES WHERE variable_name IN (
    'log_bin_trust_function_creators',
    'transaction_isolation',
    'lower_case_table_names',
    'sql_mode',
    'character_set_server',
    'default_character_set',
    'innodb_large_prefix',
    'max_connections',
    'innodb_buffer_pool_size',
    'group_concat_max_len'
    );
    
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6