13. Docker实战之安装MySQL

这篇具有很好参考价值的文章主要介绍了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。

13. Docker实战之安装MySQL,云原生,docker,mysql,运维,云原生,linux,容器

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

13. Docker实战之安装MySQL,云原生,docker,mysql,运维,云原生,linux,容器

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

13. Docker实战之安装MySQL,云原生,docker,mysql,运维,云原生,linux,容器

找到我们要的5.7版本。

13. Docker实战之安装MySQL,云原生,docker,mysql,运维,云原生,linux,容器

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

2.2、拉取MySQL镜像

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

docker pull mysql:5.7

13. Docker实战之安装MySQL,云原生,docker,mysql,运维,云原生,linux,容器

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/

13. Docker实战之安装MySQL,云原生,docker,mysql,运维,云原生,linux,容器

2.6、本地MySQL测试

先进入docker容器内

docker exec -it mysql /bin/bash

再通过命令进入MySQL:

mysql -uroot -p

13. Docker实战之安装MySQL,云原生,docker,mysql,运维,云原生,linux,容器

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

创建一个admin_rw账户:

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

13. Docker实战之安装MySQL,云原生,docker,mysql,运维,云原生,linux,容器

13. Docker实战之安装MySQL,云原生,docker,mysql,运维,云原生,linux,容器

2.8、本地Navicat连接测试

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

13. Docker实战之安装MySQL,云原生,docker,mysql,运维,云原生,linux,容器

连接成功:

13. Docker实战之安装MySQL,云原生,docker,mysql,运维,云原生,linux,容器

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://www.toymoban.com/news/detail-669172.html

到了这里,关于13. Docker实战之安装MySQL的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【云原生|Docker】13-Docker-compose详解

    ​ 前面我们在说Dokcer Harbor企业级仓库管理的时候,我们使用的就是docker-compose来启动相应的容器的,Docker-compose作为一款单机编排工具在工作中使用的还是非常多的;这一章我们将一起探讨下docker-compose的使用。 ​ Docker Compose是一个定义和运行多容器应用的单机编排工具。通

    2023年04月17日
    浏览(32)
  • MySQL运维13-Mycat分库分表之按月分片

    使用场景为按照自然月来分片,每个自然月为一个分片,但是一年有12个月,是不是要有12个数据节点才行呢?并不是。例如我现在只有三个分片数据库,这样就可以1月在第一个数据分片中,2月在第二个数据分片中,3月在第三个数据分片中,当来到4月的时候,就会重新开始

    2024年02月04日
    浏览(38)
  • 【Docker】docker部署springboot+vue+mysql+nginx前后端分离项目【部署实战篇】

    安装docker: https://blog.csdn.net/qq_39900031/article/details/121666892 springboot-vue前后端分离项目:https://gitee.com/ma-haojie/springboot-vue-demo.git https://jackwei.blog.csdn.net/article/details/110227719 或者 --restart=always 参数能够使我们 在重启docker时,自动启动相关容器 。 Docker容器的重启策略如下: no,默认

    2024年02月13日
    浏览(35)
  • 【云原生 | Docker】Linux 定时自动化备份Mysql数据到本地 & Windows 最佳实践,确定不来看看?

    🤵‍♂️ 个人主页: @AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!🐱‍🏍 🙋‍♂️声明:本人目前大学就读于大二,研究兴趣方向人工智能硬件(虽然硬件还没开始玩,但一直

    2024年02月02日
    浏览(47)
  • docker安装canal入门实战,同步mysql数据到elasticsearch

    官方docker安装说明文档:https://github.com/alibaba/canal/wiki/Docker-QuickStart canal.adapter canal 1.1.1版本之后, 增加客户端数据落地的适配及启动功能, 目前支持功能: 客户端启动器 同步管理REST接口 日志适配器, 作为DEMO 关系型数据库的数据同步(表对表同步), ETL功能 HBase的数据同步(表对表

    2024年02月04日
    浏览(34)
  • 【云原生】prometheus监控告警之安装部署alertmanager实战

    前言 🏠个人主页:我是沐风晓月 🧑个人简介:大家好,我是沐风晓月,阿里云社区博客专家😉😉 💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺 💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘 本文中的是prome

    2023年04月27日
    浏览(43)
  • MySQL运维实战(2)MySQL用户和权限管理

    作者:俊达 MySQL数据库系统,拥有强大的控制系统功能,可以为不同用户分配特定的权限,这对于运维来说至关重要,因为它可以帮助管理员控制用户对数据库的访问权限。用户管理涉及创建、修改和删除数据库用户,权限管理则控制用户对数据库的访问和操作。MySQL提供了

    2024年02月03日
    浏览(42)
  • MySQL运维实战(3.1) MySQL官方客户端使用介绍

    作者:俊达 MySQL是MySQL安装包默认的客户端,该客户端程序通常位于二进制安装包的bin目录中,或者通过rpm安装包安装mysql-community-client,是数据库管理系统的重要组成部分。MySQL客户端不仅仅是一个简单的软件工具,更是连接用户与数据库之间的桥梁,对于有效地使用MySQL数据

    2024年02月03日
    浏览(59)
  • MySQL运维实战(2.4) SSL认证在MySQL中的应用

    作者:俊达 MySQL支持使用TLS协议进行通信,该协议在数据库通信中具有关键作用。首先,TLS能够加密客户端与服务端之间的通信数据,涵盖了客户端发送至服务端的SQL请求以及服务端返回给客户端的数据,从而确保敏感信息的保密性和完整性。除此之外,TLS还允许客户端验证

    2024年02月03日
    浏览(32)
  • Docker的使用教程、学习笔记,附实战:部署chatgpt网页版ui,部署mysql8数据库

    作者:ChenZhen 博客地址:https://www.chenzhen.space/ 版权:来自b站视频 【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 因为黑马的课件ppt做的实在是太好了,基本就是原样copy过来整理一下。 如果对你有帮助,请给一个小小的

    2024年02月04日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包