前提条件:安装好 Docker,准备一个你自己的 Spring Boot 服务的 jar 包,假设为 yourapp.jar。
1. 创建一个目录,将 Spring Boot 的 jar 包放到这个目录中
2. 创建一个文件,名字为 Dockerfile,内容如下:
# 设定运行环境
FROM java:8
# 设定工作目录
WORKDIR /app
# 拷贝当前目录下的所有文件到工作目录
COPY . /app
# 对外暴露8080端口,以访问你的服务
EXPOSE 8080
# 运行的指令
CMD ["java","-Dspring.profile.active=dev","-jar","/app/yourapp.jar"]
3. 构建镜像,注意最后有个 .
docker build -t yourapp .
4. 查看镜像
docker image ls
5. 运行
docker run -d -p 8080:8000 yourapp
参数说明:
-d:后台运行
-p 8080:8000:指定端口号,前者 8080 为外部访问这个服务时,使用的端口号;8000为Spring Boot 服务启动的端口号(applciation.yml 中配置的那个端口号)
然后浏览器中访问 http://${host}:8080/ 即可访问到这个服务,那么,第一个 Spring Boot 的镜像制作完成。
这中间有个问题,当Centos 7 的防火墙服务被停止的时候,docker run 在写入端口开放的时候会报错,防火墙服务正常开启的时候,docker run 可以正常运行。