翼度科技»论坛 云主机 服务器技术 查看内容

使用Docker部署MySQL数据库的两种方法

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
引言

在现代软件开发中,MySQL 是一种流行的关系数据库管理系统,因其可靠性和易用性受到广泛欢迎。通过 Docker,可以快速、便捷地部署和管理 MySQL 数据库实例。本文将介绍两种通过 Docker 部署 MySQL 的方法:使用 Docker CLI 命令和使用 Docker Compose。

第一部分:通过 Docker CLI 命令部署 MySQL


1. 安装 Docker

确保您的系统中已安装 Docker。若未安装,请参考 Docker 官方文档 进行安装。

2. 拉取 MySQL 镜像

首先,使用以下命令从 Docker Hub 拉取 MySQL 8.0 镜像:
  1. docker pull mysql:8.0
复制代码
3. 启动 MySQL 容器

接下来,使用以下命令启动 MySQL 容器:
  1. docker run -d \
  2. --name mysql-8.0 \
  3. -e MYSQL_ROOT_PASSWORD=123456 \
  4. -e MYSQL_DATABASE=my_database \
  5. -e MYSQL_USER=run \
  6. -e MYSQL_PASSWORD=123456 \
  7. -p 3306:3306 \
  8. -v mysql-data:/var/lib/mysql \
  9. mysql:8.0 \
  10. --character-set-server=utf8mb4 \
  11. --collation-server=utf8mb4_bin \
  12. --lower_case_table_names=1
复制代码
参数说明:


    1. -d
    复制代码
    :以后台模式运行容器。
    1. --name mysql-8.0
    复制代码
    :指定容器名称为
    1. mysql-8.0
    复制代码

    1. -e
    复制代码
    :设置环境变量,配置 MySQL 的 root 密码、默认数据库名称、用户及其密码。
    1. -p 3306:3306
    复制代码
    :将主机的 3306 端口映射到容器的 3306 端口,以便外部访问数据库。
    1. -v mysql-data:/var/lib/mysql
    复制代码
    :创建持久化卷,将容器中的数据存储在主机上,确保数据不丢失。
  • 最后,指定了字符集和排序规则以优化数据库支持。

4. 验证 MySQL 运行状态

运行以下命令检查容器是否已成功启动:
  1. docker ps
复制代码
若容器列表中出现
  1. mysql-8.0
复制代码
,则表明部署成功。


5. 进入 MySQL 容器

您可以使用以下命令连接到 MySQL 数据库:
  1. docker exec -it mysql-8.0 mysql -uroot -p123456
复制代码
第二部分:通过 Docker Compose 部署 MySQL

Docker Compose 允许用户通过定义一个
  1. docker-compose.yml
复制代码
文件,方便地管理和启动多个服务。以下是通过 Docker Compose 部署 MySQL 的步骤。


1. 创建 docker-compose.yml 文件

在您的工作目录下,创建一个名为
  1. docker-compose.yml
复制代码
的文件,并输入以下内容:
  1. version: '3.8'
  2. services:
  3.   mysql:
  4.     image: mysql:8.0
  5.     container_name: mysql-8.0
  6.     environment:
  7.       MYSQL_ROOT_PASSWORD: 123456
  8.       MYSQL_DATABASE: my_database
  9.       MYSQL_USER: run
  10.       MYSQL_PASSWORD: 123456
  11.     ports:
  12.       - "3306:3306"
  13.     volumes:
  14.       - mysql-data:/var/lib/mysql
  15.     command:
  16.       - mysqld
  17.       - --character-set-server=utf8mb4
  18.       - --collation-server=utf8mb4_bin
  19.       - --lower_case_table_names=1
  20.     networks:
  21.       - mysql-network

  22. volumes:
  23.   mysql-data:

  24. networks:
  25.   mysql-network:
  26.     driver: bridge
复制代码
2. docker-compose.yml 文件逐行解析


    1. version: '3.8'
    复制代码
    指定 Docker Compose 文件的版本,
    1. 3.8
    复制代码
    适合大多数用户。
    1. services:
    复制代码
    定义在 Docker 中运行的服务。
    1. mysql:
    复制代码
    指定服务的名称,表示 MySQL 数据库服务。
    1. image: mysql:8.0
    复制代码
    使用 MySQL 8.0 镜像,如果本地没有此镜像,Docker 会自动从 Docker Hub 下载。
    1. container_name: mysql-8.0
    复制代码
    设置容器的名称,便于管理和识别。
    1. environment:
    复制代码
    设置 MySQL 的环境变量:

      1. MYSQL_ROOT_PASSWORD
      复制代码
      :root 用户的密码。
      1. MYSQL_DATABASE
      复制代码
      :初始化时创建的数据库名称。
      1. MYSQL_USER
      复制代码
      1. MYSQL_PASSWORD
      复制代码
      :创建一个新用户及其密码。

    1. ports:
    复制代码
    将主机的 3306 端口映射到容器的 3306 端口,以便外部访问数据库。
    1. volumes:
    复制代码
    将主机上的
    1. mysql-data
    复制代码
    卷挂载到容器的
    1. /var/lib/mysql
    复制代码
    目录,确保数据的持久性。
    1. command:
    复制代码
    指定 MySQL 启动时的命令参数,设置字符集和排序规则,以优化数据库的支持。
    1. networks:
    复制代码
    定义容器使用的网络,
    1. mysql-network
    复制代码
    允许容器之间进行通信。
    1. volumes:
    复制代码
    创建一个名为
    1. mysql-data
    复制代码
    的卷,用于数据持久化。
    1. networks:
    复制代码
    创建一个名为
    1. mysql-network
    复制代码
    的桥接网络,便于容器间的互联。

3. 启动 MySQL 服务

  1. docker-compose.yml
复制代码
文件所在的目录,执行以下命令启动服务:
  1. docker-compose up -d
复制代码
4. 验证服务状态

使用以下命令查看运行中的容器:
  1. docker-compose ps
复制代码
确保
  1. mysql-8.0
复制代码
容器正在运行。
5. 进入 MySQL 容器

使用以下命令访问 MySQL 数据库:
  1. docker exec -it mysql-8.0 mysql -uroot -p123456
复制代码
6. 停止和移除容器

要停止并删除容器,可以使用以下命令:
  1. docker-compose down
复制代码
总结

本文介绍了通过两种方法在 Docker 中部署 MySQL 数据库:通过 Docker CLI 命令和通过 Docker Compose 文件。每种方法都有其独特的优点,您可以根据项目需求和个人偏好选择适合的方式。

附:完整的 docker-compose.yml 文件内容
  1. version: '3.8'
  2. services:
  3.   mysql:
  4.     image: mysql:8.0
  5.     container_name: mysql-8.0
  6.     environment:
  7.       MYSQL_ROOT_PASSWORD: 123456
  8.       MYSQL_DATABASE: my_database
  9.       MYSQL_USER: run
  10.       MYSQL_PASSWORD: 123456
  11.     ports:
  12.       - "3306:3306"
  13.     volumes:
  14.       - mysql-data:/var/lib/mysql
  15.     command:
  16.       - mysqld
  17.       - --character-set-server=utf8mb4
  18.       - --collation-server=utf8mb4_bin
  19.       - --lower_case_table_names=1
  20.     networks:
  21.       - mysql-network

  22. volumes:
  23.   mysql-data:

  24. networks:
  25.   mysql-network:
  26.     driver: bridge
复制代码
通过以上步骤,您可以快速在 Docker 中部署 MySQL 数据库,确保开发环境的灵活性和一致性。
到此这篇关于使用Docker部署MySQL数据库的两种方法的文章就介绍到这了,更多相关Docker部署MySQL数据库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/server/328878y5l.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
来自手机

举报 回复 使用道具