1、准备一个SpringBoot项目
(1)我这里使用的是一个简单的SpringBoot+Redis项目,项目代码如下:
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.data.redis.core.StringRedisTemplate;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
-
- @RestController
- public class TestController {
-
- @Autowired
- StringRedisTemplate redisTemplate;
-
- @RequestMapping("/sayHello")
- public String sayHello() {
- //使用redis的自增
- Long num = redisTemplate.opsForHash().increment("hashValue","num",1);
- return "Hello World! This num is: " + num;
- }
-
- }
(2)项目的配置文件application.properties文件的内容如下:
- #项目运行接口
- server.port=8080
- #redis地址
- spring.redis.host=redis
2、编写Dockerfile,我的Dockerfile如下(仅供参考)
Dockerfile文件的编写可参考我的另一篇文章:https://blog.csdn.net/m0_64284147/article/details/126615039
- #基础镜像
- FROM java:8
-
- #把当前目录下的jar包拷贝进docker镜像里
- COPY *.jar /testcompose.jar
-
- #CMD命令用于指定这个容器启动的时候要运行的命令(CMD一行只执行一个命令,可以写多个CMD)
- CMD echo "---server.port=8080---"
-
- #对外暴露8080端口
- EXPOSE 8080
-
- #ENTRYPOINT命令用于指定这个容器启动的时候要运行的命令(可以追加命令)
- ENTRYPOINT java -jar testcompose.jar
效果图:
3、编写docker-compose.yml文件,我的docker-compose.yml如下(仅供参考)
yml文件的编写可参考我的另一篇文章:https://blog.csdn.net/m0_64284147/article/details/127019515
- #Docker Compose的版本
- version: '3.8'
- #配置我们自己的服务
- services:
- #服务名称
- testcompose:
- #跟docker build命令一样,根据Dockerfile创建镜像,.表示当前目录
- build: .
- #服务的镜像名称
- image: testcompose:0.1
- #依赖关系:本项目需要redis先启动,项目后启动,所以这时候需要配置依赖关系,如下配置就是让redis服务先启动,然后后testcompose服务才启动
- depends_on:
- - redis
- #当前服务对外暴露的端口
- ports:
- - "8080:8080"
- #服务名称
- redis:
- #服务的镜像名称
- image: "redis:alpine"
效果图:
4、使用maven打包项目
5、把打包好的jar包和Dockerfile、docker-compose.yml文件上传到服务器上(我这里把这三个文件都上传到了根目录下的testcompose文件夹里,具体的文件放置位置按自己喜好或需求来定)
6、在docker-compose.yml文件所在的目录下执行以下命令
docker compose up
效果图:(仅供参考)
7、另开一个进程访问服务器,在命令行输入以下命令访问docker映射到服务器上的项目接口
curl http://localhost:8080/sayHello
效果图:
8、从浏览器访问访问docker映射到服务器上的项目接口
效果图:
创作不易,如果这篇文章对你有帮助,希望能点个赞帮助文章的推广,如果文章有错漏,希望各位能批评指正,谢谢大家。