使用 Docker-Compose 部署 MySQL 数据库

随着容器技术的不断发展,Docker 已成为部署应用和数据库的重要工具。Docker-Compose 是 Docker 的一个扩展,用于定义和管理多个容器的应用,便于我们快速构建和运行应用环境。本文将详细讲解如何使用 Docker-Compose 部署 MySQL 数据库,适合于所有版本。

环境准备

在开始之前,请确保已安装 Docker 和 Docker-Compose。可以使用以下命令来检查是否已安装:

docker --version
docker-compose --version

如果未安装,可以参考 Docker 官方文档进行安装。

创建项目目录

首先,创建一个新的项目目录,用于存放 Docker-Compose 文件和相关配置:

mkdir mysql-docker
cd mysql-docker

编写 Docker-Compose 文件

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

version: '3.8'

services:
  mysql:
    image: mysql:latest
    container_name: my_mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root_password    # 设置 MySQL 根密码
      MYSQL_DATABASE: my_database            # 设置初始数据库
      MYSQL_USER: user                       # 设置数据库用户名
      MYSQL_PASSWORD: user_password          # 设置数据库用户密码
    ports:
      - "3306:3306"                          # 映射数据库端口
    volumes:
      - mysql_data:/var/lib/mysql            # 数据持久化

volumes:
  mysql_data:                               # 定义数据卷

配置项说明

  • version: 使用的 Docker-Compose 文件版本。
  • services: 定义了一个名为 mysql 的服务。
  • image: 使用 mysql:latest 镜像,这是 MySQL 的最新版本。
  • container_name: 指定容器的名称为 my_mysql
  • restart: 设置容器在崩溃后自动重启。
  • environment: 设置 MySQL 的环境变量,包括:
    • MYSQL_ROOT_PASSWORD: 根账户密码。
    • MYSQL_DATABASE: 初始化时创建的数据库名称。
    • MYSQL_USER: 自定义用户。
    • MYSQL_PASSWORD: 自定义用户的密码。
  • ports: 将容器的 3306 端口映射到主机的 3306 端口。
  • volumes: 持久化 MySQL 数据目录,确保数据不会因为容器重启而丢失。

启动 MySQL 服务

在项目目录中,运行以下命令来启动 MySQL 服务:

docker-compose up -d

-d 参数表示在后台运行容器。执行后,Docker-Compose 将会自动下载相应的 MySQL 镜像,并创建及启动容器。

查看容器状态

可以使用以下命令查看容器的状态:

docker-compose ps

如果一切正常,你应该能看到 MySQL 容器在运行。

连接 MySQL 数据库

你可以使用 MySQL 客户端工具(如 MySQL Workbench、DBeaver 等)或者命令行工具连接到 MySQL 数据库。以下是使用命令行连接的示例:

mysql -h 127.0.0.1 -P 3306 -u user -p

输入自定义用户的密码即可登录到 MySQL。

停止服务

如果需要停止 MySQL 服务,可以使用以下命令:

docker-compose down

此命令将停止并删除容器,但会保留数据卷。

总结

通过以上步骤,我们成功使用 Docker-Compose 部署了 MySQL 数据库。Docker-Compose 提供了便捷的管理方式,让我们能够快速搭建和配置开发环境。无论是开发测试还是生产环境,Docker 和 Docker-Compose 都是非常强大的解决方案。希望本文对你使用 Docker 部署 MySQL 数据库有所帮助!

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部