前提条件
1,docker已安装好
2,spring boot项目已准备好
准备就绪后,咱们不废话,直接开始
1,使用maven 命令将创建好的spring-boot 项目 打包 命令如下
mvn clean package
2,此时在项目目录下会有一个target文件,如图所示
3,编写Dockerfile
文件,内容如下:
FROM java:8 #基于哪个镜像,此处用的是java 8,那么如果没有docker 会自动的在主仓库里面下载jdk 8
VOLUME /tmp #文件挂载
ADD spring-cloud-eureka-server01-service-0.0.1-SNAPSHOT.jar /app.jar #将当前的jar 包改名为 app.jar
RUN bash -c 'touch /app.jar'
EXPOSE 8761 #声明暴露接口,此处我需要暴露 8761
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] #配置容器启动需要执行的命令
4,将spring-cloud-eureka-server01-service-0.0.1-SNAPSHOT.jar
和 Dockerfile
一并上传到 linux 服务器
5,执行linux 中docker 命令
docker build -t spring-cloud-eureka-server01-service-0.0.1 .
#docker build -t spring-cloud-eureka-server01-service-0.0.1 .
#-t 指定标签 最后有一个 . 不能省略 这是查找Dokcerfile的,使用 . 的话默认就是当前目录下
6.等待构建完成之后 ,查看docker 是否有了新加入的镜像(此处发现 不但生成了spring-cloud-eureka-server01-service-0.0.1
镜像,而且也把java8 镜像 拉下来了)
[root@localhost my_files]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
spring-cloud-eureka-server01-service-0.0.1 latest b5594d35d5f7 14 minutes ago 732 MB
nginx latest 81f3c3a7ee7d 38 minutes ago 109 MB
docker.io/nginx latest f68d6e55e065 5 days ago 109 MB
docker.io/java 8 d23bdf5b1b1b 2 years ago 643 MB
7.启动 spring boot 项目
[root@localhost my_files]# docker run -p 8761:8761 spring-cloud-eureka-server01-service-0.0.1
# 由于想看到启动的信息,所以没有加 -d 后台 启动,
# -p 8761:8761 是将本机的8761端口映射到docker 容器里面的8761端口上,如果docker 的端口不映射出来,那么我们在外面是无法访问的
8,访问 http://192.168.109.133:8761/
项目源码已上传到github:https://github.com/q920447939/java-study