Docker 部署 Mysql 数据库

打印 上一主题 下一主题

主题 1579|帖子 1579|积分 4737

一、利用 docker 拉取 mysql 镜像


  • 利用docker默认镜像源

    1. docker pull mysql:5.7        // 拉取指定版本,5.7 版本相对稳定
    2. docker pull mysql                // 拉取最新版本
    复制代码
  • 利用指定镜像仓库拉取

    1. // 假设可用镜像源地址为 "https://dockerpull.org"
    2. docker pull dockerpull.org/mysql:5.7        // 拉取指定仓库的指定版本
    复制代码
  • 利用国内镜像仓库

    1. // 当前国内可用镜像源地址
    2. {
    3.    "registry-mirrors": [
    4.      "https://docker.hpcloud.cloud",
    5.   "https://docker.m.daocloud.io",
    6.   "https://docker.unsee.tech",
    7.   "https://docker.1panel.live",
    8.   "http://mirrors.ustc.edu.cn",
    9.   "https://docker.chenby.cn",
    10.   "http://mirror.azure.cn",
    11.   "https://dockerpull.org",
    12.   "https://dockerhub.icu",
    13.   "https://hub.rat.dev",
    14.   "https://proxy.1panel.live",
    15.   "https://docker.1panel.top",
    16.   "https://docker.m.daocloud.io",
    17.   "https://docker.1ms.run",
    18.   "https://docker.ketches.cn"
    19.    ]
    20. }
    复制代码
      

    • 打开 docker 镜像源配置文件
      1. sudo nano /etc/docker/daemon.json
      2. // 进入 nano 的编辑界面。如果文件不存在,nano 会自动创建
      3. // 将上方镜像源地址放入 "registry-mirrors" 下
      4. // 若没有 "registry-mirrors",则将上述 "registry-mirrors" 模块全部放入
      5. // 完成编辑后,按下 Ctrl + X 组合键,此时会提示是否保存修改,按下 Y 键表示保存,
      6. // 然后按下回车键确认文件名,即可保存修改并退出 nano 编辑器
      复制代码
    • 重启 docker
      1. sudo systemctl restart docker        // 重启 docker
      2. sudo systemctl status docker        // 检查是否已重启,如果服务状态显示为 active (running),则表示 Docker 服务已成功重启
      复制代码

二、部署数据库镜像


  • 利用 docker 下令部署

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

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

       

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

      任意可视化工具均可。连接后导入数据。
    • 容器内部导入
      1. 假设文件名为 data.sql,且存放在 /opt/taichu/ 目录下
      2. 1. 拷贝至容器内部(方法1)
      3. docker exec -it 容器名或容器Id /bin/bash                // 进入容器内部,Id 可只输入前 2-3 位
      4. // 将数据文件拷贝至容器内部,taichu - 容器名称
      5. docker cp /opt/taichu/data.sql taichu:/tmp/data.sql
      6. mysql -u root -p        // 进入 mysql,输入密码
      7. create database test;                // 创建数据库,若sql文件包含创建语句则跳过
      8. use test;                // 使用数据库 test
      9. source /tmp/data.sql;        // 导入数据
      10. exit;        // 退出数据库
      11. exit        // 退出容器
      12. 2. 直接执行(方法2)
      13. docker exec -i Id mysql -u root -p password < /opt/taichu/data.sql
      14. // Id :容器 Id 或名称
      15. // password :数据库 root用户的 密码
      复制代码





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

渣渣兔

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表