前端时间须要把项目打包到docker中运行,因而就让组员去探索,最后整个过程是这样的。前端
首先咱们作java开发,通常都是使用springboot开发,开发完成,咱们须要把springboot项目打包成jar包。此时咱们jar包就能在服务器上使用 java -jar xxxx.jar 运行项目了,可是在docker中,须要把jar包在打包成镜像。java
个人开发环境是windows,而后是双系统,我在任意一个文件夹,shift+鼠标右键就能调出linux界面linux
首先咱们须要编写一个Dockerfile文件 ,把它和springboot打包好的jar包,放到同一个文件夹下面。若是你用linux系统,就把jar包和Dockerfile文件上传到linux系统下,只要保证是在同一个目录下面便可。spring
Dockerfile内容以下:docker
FROM registry.otrs365.cn/servicecool/jdk:8u241 #基础镜像,当前新镜像是基于那个镜像, 像这里就是基于java 8环境 ADD diantong-IP-4.0.0-SNAPSHOT.jar diantong-IP.jar #diantong-IP-4.0.0SNAPSHOT.jar为你SpringBoot打包最终的成包名称,别名为diantong-IP.jar EXPOSE 9081 # 这个是你项目的要暴露的端口,你项目的端口是什么这里就写什么 ENTRYPOINT ["java","-jar","/diantong-IP.jar"] #这句话至关于 java -jar diantongIP.jar
linux系统下,FROM 后面指向你docker中安装的jdk的镜像windows
注意,Dockerfile是没有后缀的。springboot
接下来就是构建镜像了服务器
在存放Dockerfile和项目jar的目录下,执行如下的命令(注意后面有一个 . 不能少)ui
docker build -t diantong-ip .
这里有一个坑,就是你jar包的名称不能有大写的,有大写你在运行上面命令时也要把大写改为小写
等待运行完成,执行成功后docker中就多了个镜像了。执行下面命令查看你的镜像:spa
docker images
启动容器
-p这个属性我这边详细说一下:9081:9081的意思是将我宿主机的9081端口映射到容器端口9081,我在前
面已经配置过这个端口了
docker run -d -p 9081:9081 diantong-ip
启动成功,使用
docker ps
就能看到容器了,至此,一个springboot应用就成功放到docker中运行了。
若是须要把这个应用给你的朋友,那只须要
docker save -o diantongip.tar diantong-ip:latest
就会获得一格diantongip.tar压缩包,把这个压缩包发给你的朋友
使用如下命令,就能导进他的docker里面了
注:此文章写于2021/08/11 若时间过长,文章内容步骤稍有误差。