在 Docker 中构建基于 CentOS 的 MySQL 数据库服务器

阅读时长 5 分钟读完

前言

Docker 是一种虚拟化技术,可以将应用程序打包成一个独立的容器,在不同的环境中运行。它的优点是可以快速构建、部署和管理应用程序,提高开发效率,降低成本。本文介绍如何在 Docker 中构建基于 CentOS 的 MySQL 数据库服务器,旨在帮助前端开发人员快速搭建开发环境。

准备工作

在开始之前,需要安装 Docker 和 Docker Compose。可以参考 Docker 官方文档进行安装。

步骤

1. 创建 Dockerfile 文件

在本地新建一个文件夹,命名为 mysql,在该文件夹下创建 Dockerfile 文件,内容如下:

-- -------------------- ---- -------
---- --------

---------- --------

--- --- -- ------ -- -
    --- -- ------- ------------ -- -
    --- -- ------- ----- ------------ -- -
    --- ----- ---

--- ----- --------------- -- -
    ----- ----------- ---------------

---- ------ -----------------

------ ----

--- ------------------------

Dockerfile 文件中的每一个指令都会生成一个新的镜像层。上面的 Dockerfile 文件中,首先从 centos:7 镜像中构建基础镜像,然后安装 MySQL 和 MySQL Server,并清除 yum 缓存。接着创建 /var/run/mysqld 目录,并将其所有权赋予 mysql 用户,然后将 my.cnf 文件复制到 /etc/mysql 目录下。最后暴露 MySQL 服务端口 3306,并启动 mysqld_safe 进程。

2. 创建 my.cnf 文件

在 mysql 文件夹下创建 my.cnf 文件,内容如下:

my.cnf 文件中包含了 MySQL 服务器的配置信息,比如数据库的存储路径、监听的端口等。注意,其中的 bind-address 配置项需要设置为 0.0.0.0,表示允许任意 IP 地址访问。

3. 创建 docker-compose.yml 文件

在 mysql 文件夹下创建 docker-compose.yml 文件,内容如下:

-- -------------------- ---- -------
-------- ---
---------
  ------
    ------ -
    --------------- -----
    -------- ------
    ------
      - -----------
    ------------
      - --------------------------------
    --------
      - ---------------------

docker-compose.yml 文件中定义了一个 MySQL 服务,该服务使用了上面创建的 Dockerfile 文件进行构建。容器名称为 mysql,始终重启。将容器的 3306 端口映射到主机的 3306 端口。设置 MYSQL_ROOT_PASSWORD 环境变量,用于指定 MySQL 的 root 用户密码。将容器的 /var/lib/mysql 目录映射到主机的 ./data 目录,用于持久化存储数据。

4. 构建和启动 MySQL 服务

在 mysql 文件夹下运行以下命令,构建和启动 MySQL 服务:

该命令会自动构建镜像、创建并启动容器。使用 -d 参数可以将容器后台运行。

5. 连接 MySQL 服务

使用以下命令连接 MySQL 服务:

该命令会连接到本地的 MySQL 服务,使用 root 用户和密码进行身份验证。

结论

本文介绍了如何在 Docker 中构建基于 CentOS 的 MySQL 数据库服务器。通过 Docker 的虚拟化技术,可以快速构建、部署和管理 MySQL 服务,提高开发效率,降低成本。希望本文能够对前端开发人员有所帮助。

示例代码

Dockerfile 文件:

-- -------------------- ---- -------
---- --------

---------- --------

--- --- -- ------ -- -
    --- -- ------- ------------ -- -
    --- -- ------- ----- ------------ -- -
    --- ----- ---

--- ----- --------------- -- -
    ----- ----------- ---------------

---- ------ -----------------

------ ----

--- ------------------------

my.cnf 文件:

docker-compose.yml 文件:

-- -------------------- ---- -------
-------- ---
---------
  ------
    ------ -
    --------------- -----
    -------- ------
    ------
      - -----------
    ------------
      - --------------------------------
    --------
      - ---------------------

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67437b52f3dd6530329190f7

纠错
反馈