Docker 部署 Mysql 数据库

一、使用 docker 拉取 mysql 镜像

  1. 使用docker默认镜像源

    docker pull mysql:5.7	// 拉取指定版本,5.7 版本相对稳定
    
    docker pull mysql		// 拉取最新版本
    
  2. 使用指定镜像仓库拉取

    // 假设可用镜像源地址为 "https://dockerpull.org"
    
    docker pull dockerpull.org/mysql:5.7	// 拉取指定仓库的指定版本
    
  3. 使用国内镜像仓库

    // 当前国内可用镜像源地址 
    
    {
       "registry-mirrors": [
         "https://docker.hpcloud.cloud",
      "https://docker.m.daocloud.io",
      "https://docker.unsee.tech",
      "https://docker.1panel.live",
      "http://mirrors.ustc.edu.cn",
      "https://docker.chenby.cn",
      "http://mirror.azure.cn",
      "https://dockerpull.org",
      "https://dockerhub.icu",
      "https://hub.rat.dev",
      "https://proxy.1panel.live",
      "https://docker.1panel.top",
      "https://docker.m.daocloud.io",
      "https://docker.1ms.run",
      "https://docker.ketches.cn"
       ]
     }
    
    1. 打开 docker 镜像源配置文件

      sudo nano /etc/docker/daemon.json
      
      // 进入 nano 的编辑界面。如果文件不存在,nano 会自动创建
      
      // 将上方镜像源地址放入 "registry-mirrors" 下
      // 若没有 "registry-mirrors",则将上述 "registry-mirrors" 模块全部放入
      
      // 完成编辑后,按下 Ctrl + X 组合键,此时会提示是否保存修改,按下 Y 键表示保存,
      // 然后按下回车键确认文件名,即可保存修改并退出 nano 编辑器
      
    2. 重启 docker

      sudo systemctl restart docker	// 重启 docker
      
      sudo systemctl status docker	// 检查是否已重启,如果服务状态显示为 active (running),则表示 Docker 服务已成功重启
      

二、部署数据库镜像

  1. 使用 docker 命令部署

    docker run 
    -p 9096:3306 
    --name taichu 
    -v /opt/taichu/mysql/conf/my.cnf:/etc/mysql/my.cnf 
    -v /opt/taichu/mysql/logs:/log
    -v /opt/taichu/mysql/data:/mysql_data 
    -e MYSQL_ROOT_PASSWORD=123456 
    -d 
    Id
    
    
    // 以上命令解释
    docker run
    
    // 映射端口9096至容器内3306,即通过云端9096端口访问数据库,容器内数据库端口设置为3306
    -p 9096:3306 
    
    --name taichu 	// 容器名称
    
    -v /opt/taichu/mysql/conf/my.cnf:/etc/mysql/my.cnf 	// 挂载数据库配置文件目录
    
    -v /opt/taichu/mysql/logs:/log			// 挂载数据库log文件目录
    
    -v /opt/taichu/mysql/data:/mysql_data 	// 挂载数据库数据存储目录
    
    -e MYSQL_ROOT_PASSWORD=123456 		    // 设置 root 用户密码
    
    -d 					// 让容器以守护进程模式在后台运行
    
    Id					// mysql 镜像 id,可仅输入前 2-3 位,通过 docker images 命令查询所有镜像
    
  2. 修改容器时区

    docker exec -it 容器名或容器Id /bin/bash		// 进入容器内部,Id 可只输入前 2-3 位
    
    // 修改时区
    rm /etc/localtime
    ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    
    exit	// 退出容器内部
    
    docker restart Id	// 重新启动该容器,Id 可只输入前 2-3 位
    
    
  3. 导入数据

    1. 通过 mysql 可视化工具连接至云端此数据库,端口号为上方映射端口,账号 root,密码为上方设定密码。

      Docker 部署 Mysql 数据库_第1张图片

      任意可视化工具均可。连接后导入数据。

    2. 容器内部导入

      假设文件名为 data.sql,且存放在 /opt/taichu/ 目录下
      
      1. 拷贝至容器内部(方法1)
      
      docker exec -it 容器名或容器Id /bin/bash		// 进入容器内部,Id 可只输入前 2-3 位
      
      // 将数据文件拷贝至容器内部,taichu - 容器名称
      docker cp /opt/taichu/data.sql taichu:/tmp/data.sql
      
      mysql -u root -p	// 进入 mysql,输入密码
      
      create database test;		// 创建数据库,若sql文件包含创建语句则跳过
      
      use test;		// 使用数据库 test
      
      source /tmp/data.sql;	// 导入数据
      
      exit;	// 退出数据库
      
      exit	// 退出容器
      
      
      2. 直接执行(方法2)
      
      docker exec -i Id mysql -u root -p password < /opt/taichu/data.sql
      
      // Id :容器 Id 或名称
      // password :数据库 root用户的 密码
      
      

你可能感兴趣的:(Docker 部署 Mysql 数据库)