文章目录
前言
之前我们用docker
部署了springboot
,redis
,mysql
的项目,但是是部署在三个不同的容器里,还需要先知道redis
和mysql
的ip
地址,手动配置到springboot
应用容器里,我只是想快速在本地进行测试啊,这样成本太高了,有没有什么办法,把他们集中管理呢?比如把它构建成为一个镜像。
办法总是有的,那就是Docker Compose
。
之前的项目地址:https://github.com/Damaer/DemoCode/tree/main/springboot/springDocker
上一篇:http://aphysia.cn/archives/ru-he-ji-yu-dockerkuai-su-da-jian-springbootmysqlredisxiang-mu-
Docker Compose
1. Docker Compose是什么?
Docker Compose
其实就是用来定义和运行复杂应用的Docker
工具,什么叫复杂应用,比如前面写的springboot
+redis
+mysql
,里面就有三个容器,这种多个容器的,用一个工具来管理,它不香么?
docker compose 通过配置文件来管理多个
Docker
容器,在配置文件中,所有的容器通过service
来进行定义,然后使用docker-compose
脚本来启动、停止、重启应用以及应用中的服务和所依赖的容器等。
2. Docker Compose 的具体步骤
一般是三个步骤:
- 使用
Dockerfile
来定义应用程序的环境 - 在
docker-compose.yml
定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。 - 执行
docker-compose up
命令来启动并运行整个应用程序。
我使用的是Mac OS
,装Docker
的时候已经把Docker Compose
也安装好了,不需要单独安装。
3. 如何在IDEA项目里面使用Docker Compose
首先pom.xml
文件中需要注意配置小写的artifactId
:
<groupId>com.aphysia</groupId>
<artifactId>dockerdemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>dockerdemo</name>
<packaging>jar</packaging>
除此之外还需要配置插件:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<!-- 将插件绑定在某个phase执行 -->
<executi