Docker-compose 编写 Java 后端和 MySQL 服务

阅读时长 8 分钟读完

随着现代化云服务的兴起,Docker 由于其轻量级和可移植性,成为了广泛使用于应用程序部署中的一项首选技术。Docker-Compose 作为 Docker 的扩展工具,提供了在 Docker 平台上管理多个容器应用程的能力,具有很高的灵活性和可扩展性。本文将介绍如何使用 Docker-Compose 编写并管理 Java 后端和 MySQL 服务。

前置条件

为了更好的掌握本次教程,请确保您已经掌握以下技能:

  • 熟练使用 Java 编程语言
  • 熟悉基本的 MySQL 数据库操作
  • 掌握 Docker 容器及其基本概念
  • 熟悉 Docker-Compose 概念及使用

Docker-Compose 环境搭建

为了搭建本实验所需的 Docker-Compose 环境,需要满足以下条件:

  • 安装 Docker
  • 安装 Docker-Compose

安装 Docker 可以参考官网 https://docs.docker.com/get-docker/。安装 Docker-Compose 可以参考官网 https://docs.docker.com/compose/install/

创建 Java 后端应用

编写 Java 代码

使用 Maven 构建 Java 项目。创建一个名为 “docker-compose-java-demo” 的项目,并在 pom.xml 中添加以下依赖:

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

以上依赖用于创建一个使用 Spring Boot 开发框架的 Java Web 应用程序,并连接 MySQL 数据库。

在 src/main/java 中新建一个包,并创建 “DemoApplication.java” 文件,代码如下:

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

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

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

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

-

创建 UserController.java 控制器:

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

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

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

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

-

构建 Docker 镜像

在项目根目录下创建一个名为 “Dockerfile” 的文件,用于构建 Docker 镜像,代码如下:

以上 Dockerfile 中使用了官方提供的 openjdk 镜像,将 Maven 构建的 fat jar 包拷贝到当前路径,并作为容器启动的入口。

输入以下命令进行构建:

以上命令将构建 Docker 镜像,镜像名称为 “docker-compose-java-demo” 。

准备 MySQL 服务

编写数据库初始化 SQL 文件

创建 “init.sql” 文件,代码如下:

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

以上 SQL 文件用于初始化 “mydb” 数据库,并创建一个名为 user 的表格,并插入两条数据记录。

创建 MySQL Docker 镜像

输入以下命令拉取 MySQL 官方镜像并启动容器:

以上命令将启动 mysql-demo 容器,并将数据持久化到本地 ~/mysql-demo 目录中,访问 MySQL 数据库的 root 用户的密码为 “password” 。

在容器启动后,输入以下命令进入 mysql 容器:

创建刚才初始化 SQL 文件,创建完毕后,退出容器。

编写 Docker-Compose 文件

在项目根目录下创建一个名为 “docker-compose.yml” 的文件,代码如下:

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

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

以上 Docker-Compose 文件用于定义了两个服务,一个是 MySQL 服务,一个是 Java 后端服务。MySQL 服务使用 MySQL 官方镜像,配置了环境变量和数据卷,并将 3306 端口映射到本地。Java 后端服务则是使用之前构建的 Docker 镜像,将 8080 端口映射到本地,同时依赖 MySQL 服务启动。

启动 Docker-Compose 容器编排

在项目根目录下,输入以下命令启动容器组:

启动后,使用浏览器访问 http://localhost:8080/users/1 ,可以看到输出 “Hello User 1”,表示 Java 后端在访问 MySQL 数据库成功。

总结

通过本教程,我们了解了如何使用 Docker-Compose 编写 Java 后端和 MySQL 服务,实现了容器化部署与运行。Docker 是一个非常强大的工具,可以极大简化编写、部署和运行分布式应用程序的过程,同时也增强了应用程序的可移植性和安全性。学会 Docker 以及其相关技术对前端开发者是非常必要的。

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

纠错
反馈