Docker案例分析:搭建MySQL数据库服务

目录
  • 1 创建配置和数据目录
  • 3 从镜像内复制配置文件到宿主机
  • 4 创建并运行mysql容器
  • 5 宿主机连接数据库
    • 5.1 终端命令连接
    • 5.2 数据库工具连接
  • 6 查看mysql日志

使用官方的mysql镜像搭建数据库服务,目前的latest版本对应8.0.19版本,为防止后续官方更新版本后下面步骤出现兼容性问题,使用镜像时可指定8.0.19版本。

1 创建配置和数据目录

在本机创建目录用于存储mysql的配置和数据。

  • 配置文件目录:~/docker/conf/mysql
  • 数据文件目录:~/docker/data/mysql
docker pull mysql

3 从镜像内复制配置文件到宿主机

镜像内部配置文件存放在/etc/mysql目录下,临时创建容器复制配置文件目录到本机~/docker/conf/目录

# 创建名为mysql的容器
docker run --name mysql -e MYSQL_ROOT_PASSWORD=crane -d mysql

# 复制docker容器内配置文件到本地~/docker/conf/mysql目录
docker cp mysql:/etc/mysql /Users/crane/docker/conf/

# 停止并删除临时容器
docker stop mysql
docker rm mysql

4 创建并运行mysql容器

挂载宿机配置和数据文件目录到docker容器内部,终端执行如下命令

# ~/docker/conf/mysql目录下为mysql配置文件
# ~/docker/data/mysql目录下为mysql数据文件
# 本机的3306和33060端口分别映射docker内部的3306和33060端口
# 数据库root密码为crane
# -d后台运行docker
docker run --name mysql -v ~/docker/conf/mysql:/etc/mysql/conf.d -v ~/docker/data/mysql:/var/lib/mysql -p 3306:3306 -p 33060:33060 -e MYSQL_ROOT_PASSWORD=crane -d mysql

5 宿主机连接数据库

5.1 终端命令连接

上一步骤容器启动成功后,在宿主机终端执行以下命令连接数据库

# 输入以下命令后回车,输入数据库密码crane
mysql -uroot -p --protocol=tcp

上面命令指定使用tcp连接数据库,如果不添加--protocol=tcp,默认会使用socket连接,会报错如下

5.2 数据库工具连接

也可用数据库工具连接,如DataGrip,进行相关数据操作。

6 查看mysql日志

容器正常运行过程中可使用下面命令查看日志

docker logs -f mysql

搭建服务时使用外部挂载的配置和数据,便于数据备份和迁移。如果在另外一台主机上使用相同版本的docker镜像启动一个容器,挂载备份的配置和数据,将会得到完全一致的数据库配置和数据。

参考 官方MySQL镜像

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • docker 搭建Mysql集群的方法示例

    docker基本指令: 更新软件包 yum -y update 安装Docker虚拟机(centos 7) yum install -y docker 运行.重启.关闭Docker虚拟机 service docker start service docker stop 搜索镜像 docker search 镜像名称 下载镜像 docker pull 镜像名称 查看镜像 docker images 删除镜像 docker rmi 镜像名称 运行容器 docker run 启动参数 镜像名称 查看容

  • 在docker上安装运行mysql实例

    希望在自己的机器模拟一下公司中微服务的构建,使用docker部署了mysql实例,使用spring boot进行了CRUD(增删改查)操作进行了一下验证,在后面的学习中也可以尝试更多的框架和组件. ps:实验环境是:ubuntu 14.04, 64位 1.获取mysql镜像 从docker hub的仓库中拉取mysql镜像 sudo docker pull mysql 查看镜像 sudo docker images mysql latest 18f13d72f7f0 2 weeks ago 38

  • docker上部署MySQL的示例

    容器云的概念现在很火,现在很多公司都把MySQL部署在容器上,开始今天内容之前,我们先来看看容器云的概念吧. 1 容器云是什么? 要理解容器云的概念,首先需要了解容器,容器的介绍过程中,需要引入虚拟机来进行对比. 虚拟机: VMware或者Virtual BoX这种虚拟机想必大家在日常工作中都有用到过,它是模拟计算机操作系统的软件,你可以在windows计算机上安装Virtual BoX软件,然后在Virtual Box上安装Centos或者Ubuntu这种Linux操作系统,从而在一台机器上运

  • Docker中部署mysql服务的方法及遇到的坑

    最近一直在学习搬运工,感觉这么厉害的东西怎么以前不知道呢,把自己捣鼓的过程整理记录下来,供同学们参考 第零步:从Docker Hub拉取官方mysql镜像 docker pull mysql 然后就是进入漫长的等待,当然如果你配置了镜像加速器,速度会快那么一丢丢 第一步:使用docker images命令查看镜像 你会看到我们这里已经有了MySQL的的镜像 第二步:启动我们的mysql的镜像,创建一个MySQL的容器 使用命令:docker run -d --name mysql -p 3307

  • Docker案例分析:搭建MySQL数据库服务

    目录 1 创建配置和数据目录 3 从镜像内复制配置文件到宿主机 4 创建并运行mysql容器 5 宿主机连接数据库 5.1 终端命令连接 5.2 数据库工具连接 6 查看mysql日志 使用官方的mysql镜像搭建数据库服务,目前的latest版本对应8.0.19版本,为防止后续官方更新版本后下面步骤出现兼容性问题,使用镜像时可指定8.0.19版本. 1 创建配置和数据目录 在本机创建目录用于存储mysql的配置和数据. 配置文件目录:~/docker/conf/mysql 数据文件目录:~/d

  • Docker案例分析:搭建Redis服务

    目录 1 创建挂载目录和文件 2 拉取redis镜像 3 创建容器并启动 4 Redis使用 5 模拟数据迁移效果 使用官方的redis镜像搭建数据库服务,目前的latest版本对应5.0.8版.挂载本地数据目录.配置目录.日志目录,便于数据备份和迁移. 1 创建挂载目录和文件 在宿主机创建配置目录~/docker/redis/conf.数据目录~/docker/redis/data和日志目录~/docker/redis/log,并在配置目录中创建文件~/docker/redis/conf/re

  • mysql 5.7 docker 主从复制架构搭建教程

    分享mysql 5.7 docker 主从复制架构搭建教程,供大家参考,具体内容如下 环境版本: MySQL :  5.7.13 Docker : 1.11.2 CentOS : 7.1 1.先在两个物理机上分别安装两个MySQL.命令如下 复制代码 代码如下: docker pull mysql:5.7.13  docker run --name anuo-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=qaz.00JK -d mysql:5.7.13 2.

  • 使用Docker容器搭建MySql主从复制

    1. 编写主MySQL的Docker文件 新建文件夹,命名为MySQL-master-v1.在文件夹mysql-master-v1中新建文件Dockerfile和master.cnf.笔者推荐使用的编辑器是Visual Studio Code.利用编辑器将这两个文件的编码设置成UTF-8.因为本文介绍安装到Linux系统下,所以笔者建议读者把换行符设置成LF,以兼顾Linux操作系统.按照如下内容编写这两个文件. Dockerfile FROM mysql:5.7 # set timezone

  • 使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析

    安装环境 安装node.js并配置环境变量 安装淘宝镜像,npm install -g cnpm --registry=https://registry.npm.taobao.org 安装webpack,cnpm install webpack -g 安装脚手架npm install vue-cli -g 创建项目 在硬盘上找一个文件夹放工程用的,在终端中进入该目录,cd目录路径 根据模板创建项目,vue init webpack-simple 工程名字<工程名字不能用中文>,vue init

  • MySQL几种更新操作的案例分析

    目录 案例分析 更新账户金额 直接更新 乐观锁方案 无锁方案 排队操作 常见问题 如果数据中存在 update_time 字段受影响的行数是多少? 如果执行 update 更新但受影响的行数为 0 会加行锁吗? 参考资料 本文将通过一个 用户账户金额更新的案例 分析几种数据更新的操作的优劣.希望对大家有帮助

  • Docker搭建MySQL并挂载数据的全过程

    目录 一.Docker搭建MySQL并挂载数据 二.挂载是否生效 其他 总结 记录 Docker 搭建 MySQL 并挂载数据过程,搭建过程参考自 Docker Hub. 一.Docker搭建MySQL并挂载数据 1.首先安装好 Docker,不知道怎么安装的可以看下 CentOS7安装Docker初体验. 2.下载 MySQL5.7 镜像. docker pull mysql:5.7 3.创建容器并挂载数据. docker run -d --restart=always --name mysq

  • MySQL 案例分析讲解外连接语法

    目录 前言 左连接 例 1 右连接 例2 作业记录 前言 外连接可以分为左外连接和右外连接 左外连接: 包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行 右外连接: 包含右边表的全部行(不管左边的表中是否存在与它们匹配的行),以及左边表中全部匹配的行 左连接 左外连接又称为左连接,使用 LEFT OUTER JOIN 关键字连接两个表,并使用 ON 子句来设置连接条件. 左连接的语法格式如下: SELECT <字段名> FROM <表1> LEF

  • 使用Spring AOP实现MySQL数据库读写分离案例分析(附demo)

     一.前言 分布式环境下数据库的读写分离策略是解决数据库读写性能瓶颈的一个关键解决方案,更是最大限度了提高了应用中读取 (Read)数据的速度和并发量. 在进行数据库读写分离的时候,我们首先要进行数据库的主从配置,最简单的是一台Master和一台Slave(大型网站系统的话,当然会很复杂,这里只是分析了最简单的情况).通过主从配置主从数据库保持了相同的数据,我们在进行读操作的时候访问从数据库Slave,在进行写操作的时候访问主数据库Master.这样的话就减轻了一台服务器的压力. 在进行读写分离

  • 基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析

    这章的目的是为了把前面所学习的内容整合一下,这个示例完成一个简单图书管理模块,因为中间需要使用到Bootstrap这里先介绍Bootstrap. 示例名称:天狗书店 功能:完成前后端分离的图书管理功能,总结前端学习过的内容. 技术:NodeJS.Express.Monk.MongoDB.AngularJS.BootStrap.跨域 效果: 一.Bootstrap Bootstrap是一个UI框架,它支持响应式布局,在PC端与移动端都表现不错. Bootstrap是Twitter推出的一款简洁.直

随机推荐