Linux Docker 运行 MySQL 并挂载到本地

概述

Docker 是一个开源的容器化平台,它能够帮助开发者在不同的环境中快速部署、运行和管理应用程序。MySQL 是一个流行的关系型数据库管理系统,用于存储和管理大量的结构化数据。在本篇文章中,我们将介绍如何使用 Docker 在 Linux 系统上运行 MySQL,并将数据库挂载到本地。

准备工作

在开始之前,您需要在 Linux 系统上安装 Docker。您可以按照 Docker 官方文档提供的指南进行安装。一旦 Docker 安装完成,您可以通过运行以下命令来验证安装是否成功:

docker version

您应该能够看到 Docker 版本信息的输出。

拉取 MySQL 镜像

在运行 MySQL 之前,我们需要从 Docker Hub 上拉取 MySQL 镜像。MySQL 官方提供了多个版本的镜像,您可以根据自己的需求选择合适的版本。在本示例中,我们将使用最新的稳定版本。

docker pull mysql

这将会从 Docker Hub 上拉取最新的 MySQL 镜像到本地。

运行 MySQL 容器

一旦 MySQL 镜像下载完成,我们可以通过运行以下命令来创建并运行一个 MySQL 容器:

docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=your_password -p 3306:3306 mysql

这个命令将会创建并运行一个名为 mysql-container 的容器,并将容器的 3306 端口映射到主机的 3306 端口上。-e MYSQL_ROOT_PASSWORD=your_password 参数用于设置 MySQL 的 root 用户密码。您需要将 your_password 替换为您自己的密码。

连接到 MySQL 容器

一旦 MySQL 容器运行起来,我们可以通过运行以下命令来连接到容器中的 MySQL 实例:

docker exec -it mysql-container mysql -p

这个命令将会在 Docker 容器中启动 MySQL 客户端,并提示您输入密码。输入您在运行容器时设置的密码,即可成功连接到 MySQL 数据库。

挂载数据到本地文件系统

默认情况下,MySQL 容器会将数据存储在容器内部的文件系统中。为了保证数据的持久性,我们可以将数据库文件挂载到主机的文件系统上。这样即使容器被删除或重启,数据也能够得到保留。

首先,创建一个用于存储 MySQL 数据的目录。在本示例中,我们将目录命名为 mysql-data

mkdir mysql-data

然后,我们可以通过运行以下命令重新创建并运行 MySQL 容器,并将数据目录挂载到容器中:

docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=your_password -v /path/to/mysql-data:/var/lib/mysql -p 3306:3306 mysql

这个命令将会将主机上的 /path/to/mysql-data 目录挂载到容器中的 /var/lib/mysql 目录。您需要将 /path/to/mysql-data 替换为您在主机上创建的目录路径。

测试连接和数据持久性

现在,我们可以通过运行之前的连接命令来连接到 MySQL 容器。输入之前设置的密码后,您应该能够成功连接到 MySQL 数据库。

接下来,我们可以在数据库中创建一个新的表,并插入一些数据,以验证数据的持久性:

CREATE DATABASE test;
USE test;
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50));
INSERT INTO users (name) VALUES ('John');
SELECT * FROM users;

这些命令将会在 test 数据库中创建一个名为 users 的表,并向表中插入一条数据。最后一个命令用于查询表中的数据。

现在,我们可以通过运行以下命令来停止并删除 MySQL 容器:

docker stop mysql-container
docker rm mysql-container

一旦容器被删除,我们可以通过