使用Docker安装部署MySQL数据库

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 使用Docker安装部署MySQL数据库

Docker是我们常用的容器引擎,使用Docker来部署和管理我们的常用数据库例如MySQL是非常的方便的。不过使用Docker安装部署MySQL还是有一些需要注意的地方的。

1,拉取MySQL镜像

使用docker pull命令即可拉取:

docker pull mysql

2,创建数据卷

MySQL作为数据库,其中通常存放我们的用户数据,都是很重要的,因此在容器化部署MySQL时,将MySQL的数据文件等等持久化是非常有必要的。

这里我们使用具名挂载的方式挂载MySQL容器的数据卷,方便管理。

先创建三个数据卷,分别用于挂载并持久化MySQL的数据文件配置文件日志这三个目录:

docker volume create mysql-data
docker volume create mysql-config
docker volume create mysql-log

这样,我们就创建了三个数据卷,这三个数据卷分别被命名为mysql-datamysql-configmysql-log,大家也可以自行取名。

3,创建MySQL容器

通过以下命令创建MySQL容器:

docker run -id--name=mysql -v mysql-config:/etc/mysql/conf.d -v mysql-log:/logs -v mysql-data:/var/lib/mysql -p3306:3306 -eMYSQL_ROOT_PASSWORD=123456-eLANG=C.UTF-8 mysql

这样,就完成了MySQL容器的创建和启动,上述命令的参数意义如下:

  • -id 将MySQL容器挂在后台运行
  • --name=mysql 将容器起名为mysql,大家可以自己起名,该参数可以省略
  • -v mysql-config:/etc/mysql/conf.d 把MySQL容器中的配置文件目录挂载至上述创建的名为mysql-config的数据卷上面,还有两个-v挂载数据卷的参数同理
  • -p 3306:3306 把容器的3306端口映射到宿主机的3306端口,这样才能从外网访问这台机器上的MySQL,若你的数据库只需要从本机访问,就可以去除这个参数
  • -e MYSQL_ROOT_PASSWORD=123456 设置容器环境变量MYSQL_ROOT_PASSWORD的值为123456,这个环境变量表示MySQL的root用户的密码,一定要设置,这里设置了密码为123456,大家可以自定义
  • -e LANG=C.UTF-8 设置容器的语言环境变量LANG值为C.UTF-8,这个必须要设置,否则容器内默认是英文环境,使得MySQL无法存放中文内容

4,修改MySQL配置文件

上述我们已经把创建了数据卷并具名挂载了容器内的MySQL配置目录,只需查看数据卷的位置并修改其中文件即可。

查看数据卷mysql-config的位置:

docker volume inspect mysql-config

网络异常,图片无法展示
|

进入这个目录,可以看到里面有两个默认的MySQL配置文件,使用vim编辑即可,在里面加入自定义的配置。

网络异常,图片无法展示
|

编辑完成记得重启容器:

# 上述创建时容器名为mysql,若为自定义此处换为自己的docker restart mysql

5,第一次添加用户或者设置外网访问

创建完成容器之后,我们可以先进入这个MySQL容器,并使用root用户连接,创建用户等等。

先进入容器的shell:

docker exec -it mysql bash

这时终端就变成了容器内的终端,使用下列命令即可连接MySQL:

mysql -u root -p

密码就是上述创建容器时你设置的MYSQL_ROOT_PASSWORD容器环境变量的值。

至于配置文件和用户添加等等常用操作这里不再赘述了,可以直接参考这篇博客的修改配置文件添加用户等等部分:传送门

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
1月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
445 108
|
1月前
|
运维 Devops 持续交付
揭秘 Docker 自动部署神器 Websoft9:热门开源软件一键部署
在企业IT建设中,软件部署常面临效率低、易出错等问题。通过Docker与自动化工具,可实现高效、标准化和可追溯的部署流程,提升企业应用交付效率,降低运维门槛,助力中小企业实现自动化部署。
147 5
揭秘 Docker 自动部署神器 Websoft9:热门开源软件一键部署
|
18天前
|
JavaScript 算法 前端开发
【Docker项目实战】使用Docker部署paopao-ce微社区
【Docker项目实战】使用Docker部署paopao-ce微社区
172 84
【Docker项目实战】使用Docker部署paopao-ce微社区
|
27天前
|
运维 Cloud Native 开发者
Docker:现代化应用开发与部署的神器
Docker:现代化应用开发与部署的神器
173 101
|
1月前
|
设计模式 Linux 开发工具
Docker部署会吗?
本段内容主要介绍了Docker常用命令、Linux基础指令及日志查看方法,还涉及SpringMVC的执行流程、设计模式与注解,适合用于面试中技术能力的展示。
81 0
|
9天前
|
存储 Docker Python
docker 部署 sftp
本文介绍SFTP服务的部署与配置,包括users.conf用户配置规则、Docker容器运行命令及上传目录权限说明,重点解析atmoz/sftp镜像的chroot机制与子目录映射,确保用户登录后正确访问/upload目录,并提供Python脚本实现文件上传示例。
51 12
docker 部署 sftp
|
10天前
|
运维 Linux 数据库
基于 Docker 部署 n8n 指南,新手一看就会
本教程详解如何通过 Docker 快速部署开源自动化工具 n8n,适合新手快速上手。内容涵盖官方部署步骤、常见难点及第三方一键部署方案,助你高效搭建自动化工作流平台。
205 6
|
16天前
|
前端开发 JavaScript 应用服务中间件
在Docker部署的前端应用中使用动态环境变量
以上步骤展示了如何在 Docker 配置过程中处理并注入环墨遁形成可执行操作流程,并确保最终用户能够无缝地与之交互而无须关心背后复杂性。
60 13
|
20天前
|
存储 Kubernetes 持续交付
为什么Docker容器化改变了开发与部署?
为什么Docker容器化改变了开发与部署?
|
1月前
|
关系型数据库 MySQL 数据库
为什么 MySQL 不推荐用 Docker 部署?
本文探讨了MySQL是否适合容器化的问题,分析了Docker容器在数据安全、性能瓶颈、状态管理及资源隔离等方面的挑战,并指出目前主流分布式数据库如TDSQL和OceanBase仍倾向于部署在物理机或KVM上。
102 0