如何在Docker中部署MySQL 8

在本文中,我将向你展示如何在Docker容器中部署MySQL 8,并详细解释每个步骤所需的代码和操作。这将帮助你理解如何使用Docker来快速搭建MySQL 8环境。

流程图

flowchart TD
    A(创建MySQL 8 Docker镜像) --> B(运行MySQL容器)

步骤

下面是部署MySQL 8容器的步骤:

步骤 说明
创建MySQL 8 Docker镜像 创建一个Docker镜像,该镜像包含了MySQL 8的安装和配置。
运行MySQL容器 使用该镜像创建并运行一个MySQL容器。

创建MySQL 8 Docker镜像

首先,我们需要创建一个Docker镜像,其中包含MySQL 8的安装和配置。

  1. 创建一个名为Dockerfile的文件,并添加以下内容:
# 基于官方的MySQL 8镜像构建
FROM mysql:8

# 复制自定义配置文件到容器中
COPY my.cnf /etc/mysql/mysql.conf.d/my.cnf
  1. 在与Dockerfile相同的目录下,创建一个名为my.cnf的文件,并添加以下内容:
[mysqld]
default_authentication_plugin=mysql_native_password

这个配置文件将设置MySQL的默认身份验证插件为mysql_native_password,因为在MySQL 8中,身份验证插件已更改为caching_sha2_password,并且本文为了简化流程,我们将使用旧的插件。

  1. 在命令行中,使用以下命令构建Docker镜像:
docker build -t mysql8 .

这将创建一个名为mysql8的Docker镜像,并将其保存到本地。

运行MySQL容器

现在,我们已经创建了一个包含MySQL 8的Docker镜像,接下来我们将使用该镜像来创建和运行一个MySQL容器。

  1. 在命令行中,使用以下命令运行MySQL容器:
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=password -d -p 3306:3306 mysql8

这个命令将创建一个名为mysql-container的MySQL容器,设置root用户的密码为password,并将容器的3306端口映射到主机的3306端口。

  1. 现在,你可以使用以下命令连接到MySQL容器:
docker exec -it mysql-container mysql -uroot -p

这将以交互方式连接到MySQL容器中的MySQL服务器,你需要输入之前设置的密码password

总结

通过按照上述步骤,你已经成功地在Docker容器中部署了MySQL 8。首先,我们创建了一个包含MySQL 8安装和配置的Docker镜像,然后我们使用该镜像创建了一个MySQL容器。现在你可以通过连接到该容器来访问MySQL服务器,并开始在Docker环境中进行MySQL开发。

希望这篇文章对你有所帮助,让你能够快速而顺利地部署MySQL 8 Docker容器。如果你有任何问题或疑问,请随时提问。