我的编程空间,编程开发者的网络收藏夹
学习永远不晚

13. Docker实战之安装MySQL

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

13. Docker实战之安装MySQL

目录

1、前言

2、部署MySQL

2.1、Docker仓库查看镜像

2.2、拉取MySQL镜像

2.3、创建持久化目录

2.4、启动MySQL容器

2.5、查看宿主机上的MySQL目录

2.6、本地MySQL测试

2.7、新建MySQL用户,配置远程访问

2.8、本地Navicat连接测试

3、为什么数据库不适合Docker容器化

3.1、数据安全性

3.2、硬件资源争用

3.3、网络带宽占用

3.4、数据额外隔离

4、小结


1、前言

开发中,通常会自建MySQL数据库方便个人开发测试。这里利用Docker安装MySQL 5.7。

2、部署MySQL

2.1、Docker仓库查看镜像

上镜像仓库:https://hub.docker.com/ 搜索mysql。

搜索结果第一条,就是我们要的结果。

点击进去查看详情,可以看到关于MySQL镜像相关的所有信息。我们需要安装的是MySQL5.7版本,因此我们进入到Tags中。

找到我们要的5.7版本。

后面的黑框里的命令,就是我们可以拉取该版本的命令。

2.2、拉取MySQL镜像

从Docker Hub中复制拉取镜像命令,执行。

docker pull mysql:5.7

2.3、创建持久化目录

MySQL数据库部署时,一定要考虑数据持久化的问题。如果没有挂在持久化数据卷,一旦MySQL容器被销毁,则数据将会全部丢失。

# 用于存放mysql配置文件mkdir -p mysql/conf# 用于存放mysql数据mkdir -p mysql/data

2.4、启动MySQL容器

docker run -d -p 33066:3306 \    -v /home/pengyaohuang/mysql/conf:/etc/mysql/conf.d  \    -v /home/pengyaohuang/mysql/data:/var/lib/mysql \    -e MYSQL_ROOT_PASSWORD=root \    --name mysql mysql:5.7

-v将MySQL的配置文件和数据文件挂在到宿主机上。

2.5、查看宿主机上的MySQL目录

tree -d -L 3 /home/pengyaohuang/mysql/

2.6、本地MySQL测试

先进入docker容器内

docker exec -it mysql /bin/bash

再通过命令进入MySQL:

mysql -uroot -p

2.7、新建MySQL用户,配置远程访问

创建一个admin_rw账户:

# 创建用户mysql> create user 'admin_rw'@'%' identified by '123456';# 赋予所有权限mysql> grant all privileges on *.* to 'admin_rw'@'%';# 刷新权限mysql> flush privileges;

2.8、本地Navicat连接测试

由于我映射到宿主机端口为33066,因此我的MySQL连接信息为:192.168.74.128:33066

连接成功:

3、为什么数据库不适合Docker容器化

虽然我们按照前面步骤能够正常安装并使用我们的MySQL。但是实际项目中,我们MySQL很少会使用Docker安装,要么直接装在宿主机,要么使用云服务RDS。这是因为DOcker容器提供的是无状态的服务,所以不适合将有状态的服务(如数据库)部署到Docker容器中。原因有4:

3.1、数据安全性

尽管 Docker 可以通过数据卷的方式将容器中的数据持久化到宿主机上,但仍不能保证不丢失数据。如果容器崩溃了,且数据库未被正确关闭,则可能会丢失数据。

3.2、硬件资源争用

通常在一台 Docker 的宿主机上会启动多个容器,如果将数据库的容器与其他应用的容器部署在同一个宿主机上,由于它们对硬件资源的要求是不同的,则必然会造成资源争用的问题。

3.3、网络带宽占用

Docker 的网络都是虚拟网络,通过宿主机上的 docker0 网桥进行转发。而数据库通常对网络带宽的要求是比较高的。因此,将数据库的容器与其他应用的容器部署在同一个宿主机上,则网络带宽必然会成为数据库性能的瓶颈。

3.4、数据额外隔离

将数据库部署到容器中,毫无疑问会增加对容器的隔离,不利于数据库的水平扩展。

4、小结

使用 Docker 是为了更容易地构建新环境和重新部署应用。而在实际情况中,数据库一旦部署完成,则很少会对数据库进行升级或重新部署。因此,从这个角度来看数据库也不适合 Docker 容器化。

来源地址:https://blog.csdn.net/p793049488/article/details/132471922

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

13. Docker实战之安装MySQL

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Docker实战之MySQL主从复制

前言曾几何时,看着高大上的架构和各位前辈高超的炫技,有没有怦然心动,也想一窥究竟?每当面试的时候,拿着单应用的架构,吹着分库分表的牛X,有没有心里慌的一批?其实很多时候,我们所缺少的只是对高大上的技术的演练。没有相关的业务需求,没有集群环境,然后便只是Goog
Docker实战之MySQL主从复制
2016-09-20

Docker安装部署neo4j的实战过程

Docker是一种容器化技术,可以在Linux系统上部署应用程序,下面这篇文章主要给大家介绍了关于Docker安装部署neo4j的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
2023-05-20

Docker安装mysql实例分析

这篇文章主要介绍“Docker安装mysql实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Docker安装mysql实例分析”文章能帮助大家解决问题。查看需要安装的镜像版本1.搜索mysql
2023-07-02

Docker实战之运行项目

在本篇文章里小编给大家分享的是关于docker运行项目的方法和实例,需要的朋友们学习参考下。1、进入存放自己项目war的目录
2023-06-04

【Docker】02-安装mysql

参考教程: https://www.bilibili.com/video/BV1Qa4y1t7YH/?p=5&spm_id_from=pageDriver&vd_source=4964ba5015a16eb57d0ac13401b0fe
2023-08-30

Docker下安装MySQL

1:查看MySQL可用版本镜像docker search mysql  2:拉取MySQL镜像 docker pull mysql:latest(如果要安装指定版本将latest换成版本号即可,此处安装最新版本)    3:查看MySQL镜像是否成功下载doc
Docker下安装MySQL
2015-03-30

docker如何安装mysql

最近在部署django,不想在手动安装一遍mysql,便尝试使用docker,总结了安装的心得,这些前提都是在安装了docker后: 1. 查看mysql镜像;docker search mysql2.有镜像,直接拉取最新镜像docker
2022-05-14

docker怎么安装mysql

这篇“docker怎么安装mysql”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“docker怎么安装mysql”文章吧。1
2023-06-29

【MySQL入门实战5】-Linux PRM 包安装MySQL

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA工作经验 一位上进心十足的【大数据领域博主】!&#x
2023-08-21

Hyper-V实战之多个Win2008安装方法

Windows 2008 的横空出世,让虚拟化技术向前更进一步。其自带的Hyper-V技术,相信很多喜欢尝新的朋友已经在使用了。针对Hyper-V方面的介绍不予于多说,网络上大把的资料,而这篇博文的主要目的就是分享下在使用Hyper-V过程
2023-05-25

编程热搜

目录