使用Docker部署MySQL数据库的两种方法
作者:琴剑飘零西复东
引言
在现代软件开发中,MySQL 是一种流行的关系数据库管理系统,因其可靠性和易用性受到广泛欢迎。通过 Docker,可以快速、便捷地部署和管理 MySQL 数据库实例。本文将介绍两种通过 Docker 部署 MySQL 的方法:使用 Docker CLI 命令和使用 Docker Compose。
第一部分:通过 Docker CLI 命令部署 MySQL
1. 安装 Docker
确保您的系统中已安装 Docker。若未安装,请参考 Docker 官方文档 进行安装。
2. 拉取 MySQL 镜像
首先,使用以下命令从 Docker Hub 拉取 MySQL 8.0 镜像:
docker pull mysql:8.0
3. 启动 MySQL 容器
接下来,使用以下命令启动 MySQL 容器:
docker run -d \ --name mysql-8.0 \ -e MYSQL_ROOT_PASSWORD=123456 \ -e MYSQL_DATABASE=my_database \ -e MYSQL_USER=run \ -e MYSQL_PASSWORD=123456 \ -p 3306:3306 \ -v mysql-data:/var/lib/mysql \ mysql:8.0 \ --character-set-server=utf8mb4 \ --collation-server=utf8mb4_bin \ --lower_case_table_names=1
参数说明:
-d
:以后台模式运行容器。--name mysql-8.0
:指定容器名称为mysql-8.0
。-e
:设置环境变量,配置 MySQL 的 root 密码、默认数据库名称、用户及其密码。-p 3306:3306
:将主机的 3306 端口映射到容器的 3306 端口,以便外部访问数据库。-v mysql-data:/var/lib/mysql
:创建持久化卷,将容器中的数据存储在主机上,确保数据不丢失。- 最后,指定了字符集和排序规则以优化数据库支持。
4. 验证 MySQL 运行状态
运行以下命令检查容器是否已成功启动:
docker ps
若容器列表中出现 mysql-8.0
,则表明部署成功。
5. 进入 MySQL 容器
您可以使用以下命令连接到 MySQL 数据库:
docker exec -it mysql-8.0 mysql -uroot -p123456
第二部分:通过 Docker Compose 部署 MySQL
Docker Compose 允许用户通过定义一个 docker-compose.yml
文件,方便地管理和启动多个服务。以下是通过 Docker Compose 部署 MySQL 的步骤。
1. 创建 docker-compose.yml 文件
在您的工作目录下,创建一个名为 docker-compose.yml
的文件,并输入以下内容:
version: '3.8' services: mysql: image: mysql:8.0 container_name: mysql-8.0 environment: MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: my_database MYSQL_USER: run MYSQL_PASSWORD: 123456 ports: - "3306:3306" volumes: - mysql-data:/var/lib/mysql command: - mysqld - --character-set-server=utf8mb4 - --collation-server=utf8mb4_bin - --lower_case_table_names=1 networks: - mysql-network volumes: mysql-data: networks: mysql-network: driver: bridge
2. docker-compose.yml 文件逐行解析
version: '3.8'
指定 Docker Compose 文件的版本,3.8
适合大多数用户。services:
定义在 Docker 中运行的服务。mysql:
指定服务的名称,表示 MySQL 数据库服务。image: mysql:8.0
使用 MySQL 8.0 镜像,如果本地没有此镜像,Docker 会自动从 Docker Hub 下载。container_name: mysql-8.0
设置容器的名称,便于管理和识别。environment:
设置 MySQL 的环境变量:MYSQL_ROOT_PASSWORD
:root 用户的密码。MYSQL_DATABASE
:初始化时创建的数据库名称。MYSQL_USER
和MYSQL_PASSWORD
:创建一个新用户及其密码。
ports:
将主机的 3306 端口映射到容器的 3306 端口,以便外部访问数据库。volumes:
将主机上的mysql-data
卷挂载到容器的/var/lib/mysql
目录,确保数据的持久性。command:
指定 MySQL 启动时的命令参数,设置字符集和排序规则,以优化数据库的支持。networks:
定义容器使用的网络,mysql-network
允许容器之间进行通信。volumes:
创建一个名为mysql-data
的卷,用于数据持久化。networks:
创建一个名为mysql-network
的桥接网络,便于容器间的互联。
3. 启动 MySQL 服务
在 docker-compose.yml
文件所在的目录,执行以下命令启动服务:
docker-compose up -d
4. 验证服务状态
使用以下命令查看运行中的容器:
docker-compose ps
确保 mysql-8.0
容器正在运行。
5. 进入 MySQL 容器
使用以下命令访问 MySQL 数据库:
docker exec -it mysql-8.0 mysql -uroot -p123456
6. 停止和移除容器
要停止并删除容器,可以使用以下命令:
docker-compose down
总结
本文介绍了通过两种方法在 Docker 中部署 MySQL 数据库:通过 Docker CLI 命令和通过 Docker Compose 文件。每种方法都有其独特的优点,您可以根据项目需求和个人偏好选择适合的方式。
附:完整的 docker-compose.yml 文件内容
version: '3.8' services: mysql: image: mysql:8.0 container_name: mysql-8.0 environment: MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: my_database MYSQL_USER: run MYSQL_PASSWORD: 123456 ports: - "3306:3306" volumes: - mysql-data:/var/lib/mysql command: - mysqld - --character-set-server=utf8mb4 - --collation-server=utf8mb4_bin - --lower_case_table_names=1 networks: - mysql-network volumes: mysql-data: networks: mysql-network: driver: bridge
通过以上步骤,您可以快速在 Docker 中部署 MySQL 数据库,确保开发环境的灵活性和一致性。
到此这篇关于使用Docker部署MySQL数据库的两种方法的文章就介绍到这了,更多相关Docker部署MySQL数据库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!