当前位置: 首页 > news >正文

Docker最佳实践(三):安装mysql

大家好,欢迎各位工友。 本篇呢我们就来演示一下如何在Docker中部署MySQL容器,可以按照以下步骤进行:

1. 搜索镜像

首先搜索MySQL镜像,可以使用以下命令:

docker search mysql

2. 拉取镜像

根据需求选择MySQL或MariaDB,拉取镜像的命令如下:

docker pull mysql

在这里插入图片描述

3.配置

建立相应的目录,用于挂载,根据自己的目录进行新建:

mkdir -p /kim/mysql/data
mkdir -p /kim/mysql/conf
mkdir -p /kim/mysql/log

4. 启动容器

镜像拉取完成后,可以启动容器,使用以下命令:

docker run -d --privileged=true --restart=always --name mysql -p 3306:3306 \
-v /kim/mysql/conf:/etc/mysql/conf.d  \
-v /kim/mysql/log:/var/log/mysql \
-v /kim/mysql/data:/var/lib/mysql \
-v /etc/localtime:/etc/localtime \
-e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai mysql

在这里插入图片描述

解释:

  • -d:在后台运行容器;
  • --privileged=true:赋予容器主机的所有权限;
  • --restart=always:设置容器总是自动重启;
  • --name mysql:指定容器名称为mysql;
  • -p 3306:3306:端口映射,将主机端口3306映射到容器端口3306;
  • -v /kim/mysql/conf:/etc/mysql/conf.d:将主机上的配置文件映射到容器内的目录;
  • -v /kim/mysql/log:/var/log/mysql:将主机上的日志目录映射到容器内;
  • -v /kim/mysql/data:/var/lib/mysql:将主机上的数据目录映射到容器内;
  • -v /etc/localtime:/etc/localtime:映射主机时间到容器内以保持时间同步;
  • -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai:设置MySQL root密码和时区;
  • mariadb:指定使用的Docker镜像。

5. 数据库配置(最新版本可以忽略)

旧版本的数据库会有编码问题,导致中文乱码,插入数据可能会报错。如果用的是最新版本,是没有问题的。

下面针对编码问题进行配置:

在挂载的配置目录下,我这里是 /kim/mysql/conf 目录,在 conf 目录下新建配置文件 my.cnf ,内容如下:

[client]
default-character-set=utf8[mysql]
default-character-set=utf8[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

6. 重启容器

修改配置后,需要重启容器生效:

docker restart 容器ID

1722933090645)

7. 测试验证

1. 使用firewall-cmd命令打开3360端口:

sudo firewall-cmd --zone=public --add-port=3360/tcp --permanent

这会将3360端口添加到防火墙规则中,持久生效。

2. 重新加载防火墙配置以应用更改:

sudo firewall-cmd --reload

3. 确认端口3360已打开:

sudo firewall-cmd --list-ports

使用客户端连接工具测试是否连接成功

在这里插入图片描述

8、总结

上述我们演示了如何在docker中安装mysql镜像以及启动mysql容器,下篇文章我们来演示redis的安装教程。

http://www.lryc.cn/news/419238.html

相关文章:

  • 进阶SpringBoot之 Web 静态资源导入
  • 【数据结构七夕专属版】单链表及单链表的实现【附源码和源码讲解】
  • 鸿蒙笔记--Socket
  • 安装python+python的基础语法
  • html+css网页制作 国家体育总局2个页面模版(无js)
  • Effective Java学习笔记第27、28条原生态类型和非受检警告
  • javaEE和javaSE
  • Leetcode 17.电话号码的字母组合
  • 位1的个数
  • RPA在政务服务中的挑战与解决方案
  • RabbitMQ docker安装
  • 关于vs调试的一些基本技巧方法,建议新手学习
  • ​MySQL——索引(二)创建索引(2)使用 CREATE INDEX 语句在已经存在的表上创建索引
  • 前端HTML总结
  • 【动态规划】647. 回文子串
  • python-约瑟夫环(赛氪OJ)
  • Less 教程:从入门到精通
  • 【VScode】如何在anaconda虚拟环境中打开vscode项目
  • Flink任务提交流程和运行模式
  • 【机器学习】 Sigmoid函数:机器学习中的关键激活函数
  • Vue+Element Plus后台管理主界面搭建实现
  • JAVA—异常
  • 常见八股面试题:Dubbo 和 Spring Cloud Gateway 有什么区别?
  • k8s分布式存储-ceph
  • Redis cluster集群部署
  • Java泛型的理解
  • Linux 照片图像编辑器
  • 【51单片机仿真】基于51单片机设计的智能六位密码锁(匿*输入/密码修改/警示/保存/恢复/初始密码)源码仿真设计文档演示视频——文末资料下载
  • 【Vue3】组件通信之mitt
  • 状态压缩动态规划——状压dp