1、将springboot应用打包成可执行jar
个人打包的项目地址:
进入item-hello目录执行如下命令打包。
mvn package -Dmaven.test.skip=true -Ptest
2、可执行jar包上传到linux执行目录
这里上传到了Linux中的目录 /app/hello-app
[root@VM_108_39_centos hello-app]# pwd/apps/hello-app[root@VM_108_39_centos hello-app]# ll-rw-r--r-- 1 root root 17756779 Dec 13 09:32 item-hello-1.0-SNAPSHOT.jar[root@VM_108_39_centos hello-app]#
3、在该目录下创建Dockerfile文件
From java:8# 将本地文件夹挂载到当前容器VOLUME /apps/tmp# 复制文件到容器ADD item-hello-1.0-SNAPSHOT.jar /app.jar# 声明需要暴露的端口EXPOSE 8090# 配置容器启动后执行的命令ENTRYPOINT ["java","-jar","/app.jar"]
[root@VM_108_39_centos hello-app]# lltotal 17348-rw-r--r-- 1 root root 256 Dec 13 09:14 Dockerfile-rw-r--r-- 1 root root 17756779 Dec 13 09:32 item-hello-1.0-SNAPSHOT.jar[root@VM_108_39_centos hello-app]#
4、使用docker build命令构建镜像
[root@VM_108_39_centos hello-app]# docker build -t helloapp:0.0.1 .Sending build context to Docker daemon 17.76 MBStep 1/5 : FROM java:8Trying to pull repository docker.io/library/java ... sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d: Pulling from docker.io/library/java5040bd298390: Pull complete fce5728aad85: Pull complete 76610ec20bf5: Pull complete 60170fec2151: Pull complete e98f73de8f0d: Pull complete 11f7af24ed9c: Pull complete 49e2d6393f32: Pull complete bb9cdec9c7f3: Pull complete Digest: sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9dStatus: Downloaded newer image for docker.io/java:8 ---> d23bdf5b1b1bStep 2/5 : VOLUME /apps/tmp ---> Running in 3bb3065ab081 ---> b2ae8abc4db6Removing intermediate container 3bb3065ab081Step 3/5 : ADD item-hello-1.0-SNAPSHOT.jar /app.jar ---> b260ef58051aRemoving intermediate container 1b9bfb5dbdf7Step 4/5 : EXPOSE 8090 ---> Running in 9b77153d75ea ---> aa1ea26fa596Removing intermediate container 9b77153d75eaStep 5/5 : ENTRYPOINT java -jar /app.jar ---> Running in 5a02f129583a ---> 65724311b315Removing intermediate container 5a02f129583aSuccessfully built 65724311b315 #构建成功[root@VM_108_39_centos hello-app]#
格式: docker build -t 镜像名称:标签 Dockerfile的相对位置 这里的.代表当前目录
在这里,使用-t选项指定了镜像的标签。
5、启动镜像,加-d可在后台启动
[root@VM_108_39_centos hello-app]# docker run -d -p 8090:8090 helloapp:0.0.1d296c55ebe53061819e88306db8309266dd97491494e5b431adf961db39d5c58[root@VM_108_39_centos hello-app]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESd296c55ebe53 helloapp:0.0.1 "java -jar /app.jar" 10 seconds ago Up 8 [root@VM_108_39_centos hello-app]#
6、测试应用
访问对应的服务链接。