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

使用 Docker-compose 部署 MySQL

使用 Docker Compose 部署 MySQL

本文将详细指导如何使用 docker-compose 部署 MySQL,包括基本配置、启动步骤、数据持久化以及一些高级选项。通过容器化部署 MySQL,你可以快速搭建一个隔离的数据库环境,适用于开发、测试或小型生产场景。


关键要点

  • 使用 docker-compose 部署 MySQL 需要创建一个 docker-compose.yml 文件,设置 MySQL 镜像、端口映射、环境变量和数据持久化。
  • 需要安装 Docker Engine、Docker Compose 和 MySQL 客户端。
  • 数据通过命名卷持久化,方便管理和备份。
  • 令人惊讶的是,你可以自动创建数据库和用户,只需在文件中添加额外的环境变量。

准备工作

在开始之前,请确保已安装以下工具:

  • Docker Engine:容器运行环境,可从 官方文档 获取。
  • Docker Compose:管理多容器应用的工具,可从 官方文档 获取。
  • MySQL 客户端:用于连接和操作数据库,可参考 安装指南。

这些工具是部署的基础,确保你的环境已准备就绪。


创建和启动 MySQL

1. 创建 docker-compose.yml 文件

创建一个名为 docker-compose.yml 的文件,内容如下:

version: '3.9'
services:
  mysql:
    image: mysql:8.0
    restart: always
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: MYPASSWORD
    volumes:
      - mysql_data:/var/lib/mysql
volumes:
  mysql_data: 

说明:

version: '3.9':指定 Docker Compose 文件格式版本。
image: mysql:8.0:使用 MySQL 8.0 官方镜像。
restart: always:容器在失败时自动重启。
ports: "3306:3306":将主机端口 3306 映射到容器内的 3306 端口。
environment:设置 MySQL 根密码(将 MYPASSWORD 替换为你的实际密码)。
volumes:使用命名卷 mysql_data 挂载到 /var/lib/mysql,实现数据持久化。

2.可选:自动创建数据库和用户

如果需要自动创建数据库和用户,可以在 environment 中添加以下内容:

environment:
  - MYSQL_ROOT_PASSWORD=MYPASSWORD
  - MYSQL_DATABASE=mydb
  - MYSQL_USER=myuser
  - MYSQL_PASSWORD=myuserpassword

说明:

MYSQL_DATABASE:创建名为 mydb 的数据库。
MYSQL_USER:创建用户 myuser。
MYSQL_PASSWORD:设置用户密码为 myuserpassword。
将上述值替换为你的实际需求,这一功能非常适合快速初始化。

3.启动服务

在 docker-compose.yml 文件所在目录,打开终端并运行:

docker compose up -d

-d 参数表示在后台运行,容器启动后不会阻塞终端。
首次运行可能需要下载 MySQL 镜像,请耐心等待。

4. 验证和连接

检查容器状态:

docker compose ps

输出应显示 mysql 服务状态为 Up,表示运行正常。

连接 MySQL,使用 MySQL 客户端:

mysql -h localhost -u root -p

输入之前设置的密码(如 MYPASSWORD),成功连接后即可看到 MySQL 提示符。

5. 停止和清理

使用完成后,运行以下命令停止并移除容器:

docker compose down

这会停止并删除容器、网络和卷,但数据仍保存在 mysql_data 卷中,除非手动清理。

注意事项

数据持久化mysql_data 卷确保数据在容器删除后仍可访问,建议定期备份。
安全性:暴露 3306 端口可能存在风险,生产环境建议使用防火墙或 Docker 网络隔离。
调试
查看日志:

docker logs mysql

进入容器

docker exec -it mysql bash

结论

通过 docker-compose 部署 MySQL 是一种高效、灵活的方式,适合快速搭建开发或测试环境。本文提供了从基础配置到高级选项的完整指南,包括数据持久化、自动初始化和故障排查方法。你可以根据实际需求调整配置,例如更改端口、密码或添加初始化脚本。


http://www.kler.cn/a/555465.html

相关文章:

  • Openai Dashboard可视化微调大语言模型
  • C++游戏开发流程图
  • idea从远程gitee拉取项目
  • SVN服务器搭建【Linux】
  • Node os模块
  • Android开发-深入解析Android中的AIDL及其应用场景
  • SpringCloud系列教程:微服务的未来(二十四)Direct交换机、Topic交换机、声明队列交换机
  • 蓝桥杯备赛 Day15 动态规划
  • STM32 HAL库UART串口数据接收实验
  • Golang访问Google Sheet
  • Java 中的内存泄漏问题及解决方案
  • PDF 分割与合并 工具资源分享
  • 合规数助力律师专业工作,开启法律科技新篇
  • PassGPT:基于大型语言模型的密码建模和(引导式)生成
  • 火绒终端安全管理系统V2.0病毒防御功能介绍
  • 解决本地模拟IP的DHCP冲突问题
  • C++ 模板 简单易懂
  • c++ std::weak_ptr使用笔记
  • 纷析云开源版- Vue2-前端表格使用
  • 《深度学习》——RNN网络简单介绍