用Docker部署Spring Boot应用与MySQL8数据库

在当今互联网行业中,微服务架构已经成为一种非常流行的架构模式。而Spring Boot作为一种轻量级的Java开发框架,能够快速地搭建出符合微服务架构的应用。而在微服务架构中,数据库服务也是必不可少的一环,MySQL8是一个非常流行的数据库引擎。本文将介绍如何利用Docker容器化技术来部署一个基于Spring Boot和MySQL8的应用。

准备工作

在开始之前,我们需要安装Docker和Docker Compose。Docker是一个开源的容器化平台,可以帮助我们快速构建、打包和部署应用程序。而Docker Compose则是一个工具,可以帮助我们定义和运行多个Docker容器的应用。在安装完Docker和Docker Compose之后,我们可以开始创建我们的Spring Boot应用和MySQL8容器。

创建Spring Boot应用

首先,我们需要创建一个简单的Spring Boot应用。我们可以使用Spring Initializr来快速创建一个新的Spring Boot项目。在这个项目中,我们将使用Spring Data JPA来访问MySQL数据库。

@RestController
@SpringBootApplication
public class DemoApplication {
    
    @Autowired
    private UserRepository userRepository;

    @GetMapping("/users")
    public List<User> getUsers() {
        return userRepository.findAll();
    }

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

在这个示例中,我们创建了一个简单的RESTful API,用来获取所有用户信息。用户信息将存储在MySQL数据库中。

创建MySQL8容器

接下来,我们需要创建一个MySQL8容器。我们可以使用Docker Compose来定义我们的MySQL服务。

version: '3'
services:
  mysql:
    image: mysql:8
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: test
      MYSQL_USER: user
      MYSQL_PASSWORD: password
    ports:
      - "3306:3306"

在这个示例中,我们定义了一个MySQL8服务,使用了mysql:8的镜像,并且设置了Root用户的密码为root,并创建了一个名为test的数据库,用户为user,密码为password。我们也将容器的3306端口映射到了宿主机的3306端口。

运行应用

现在我们可以使用Docker Compose来运行我们的Spring Boot应用和MySQL8容器。

docker-compose up

这个命令将会启动我们定义的MySQL8容器和Spring Boot应用。我们可以通过访问http://localhost:8080/users来查看所有用户信息。

结束语

通过本文的介绍,我们学习了如何使用Docker容器化技术来部署一个基于Spring Boot和MySQL8的应用。Docker的轻量级和可移植性使得部署和管理应用变得非常简单。希望本文能够帮助你更好地了解如何在微服务架构中部署应用和数据库服务。