docker部署springBoot项目

Dockerfile 文件

写法1(实际用过)

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD customerservice-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

 写法2

FROM java:8
VOLUME /tmp
ADD springboot-1.0-SNAPSHOT.jar boot.jar
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/boot.jar"]

FROM:表示基础镜像,即运行环境

VOLUME : /tmp创建/tmp目录并持久化到Docker数据文件夹,因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp作为工作目录

ADD:拷贝文件并且重命名(ADD springboot-1.0-SNAPSHOT.jar boot.jar 将应用jar包复制到/boot.jar)

EXPOSE:并不是真正的发布端口,这个只是容器部署人员与建立image的人员之间的交流,即建立image的人员告诉容器布署人员容器应该映射哪个端口给外界

ENTRYPOINT:容器启动时运行的命令,相当于我们在命令行中输入java -jar xxxx.jar,为了缩短 Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为 ENTRYPOINT

1.在centos7 ~ 创建一个文件夹docker 里面放置 上面的Dockerfile 和 springBoot 打包的项目 customerservice-0.0.1-SNAPSHOT.jar

执行命令

docker build -t customersystem .
-t代表要构建的镜像的tag

.代表当前目录,也就是Dockerfile所在的目录。
执行docker build命令,docker就会根据Dockerfile里你定义好的命令进行构建新的镜像。

然后就可以看到在下载各种依赖的maven、各种jar,构建完毕后,启动项目。

  

 

在该docker文件夹下使用 指令:

docker run -d -p 9008:9008 --restart=always --name customersystem customersystem

docker run --rm -d --name 容器名称 -p 8080:8080 镜像名称
其中-d表示后台运行容器,这也就自然地解决的Spring Boot不支持后台运行应用程序的问题。 -p 8080:8080表示将容器内部的8080端口映射到宿主机器的8080端口,这样就可以通过宿主机器直接访问应 用。 –name 给容器取一个容易记住的名字方便日后管理。 --rm 在Docker容器退出时,默认容器内部的文件系统仍然被保留,以方便调试并保留用户数据
运行该springBoot项目,可以看到构建完毕的景象docker了
查询当前运行的容器
[root@sl docker]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
f1d7587c800e        cdaa62cb062c        "java -Djava.secur..."   2 hours ago         Up 2 hours          0.0.0.0:8088->8088/tcp   customersystem

最后访问浏览器

在docker开始部署springBoot项目(方法二)
把整个工程代码拷到centos服务器上

[root@iz2zeh5mjwg5u2vl2fawchz ~]# ls /usr/local/gs-spring-boot-docker-master
pom.xml  src  target
在/usr/local/gs-spring-boot-docker-master目录下运行命令:

mvn package docker:build
success

 ---> 8b562204cb2c
Removing intermediate container 262ca4a9b39d
Step 5/6 : ENV JAVA_OPTS ""
 ---> Running in 19a713bcc1fa
 ---> 772752e84c58
Removing intermediate container 19a713bcc1fa
Step 6/6 : ENTRYPOINT sh -c java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar
 ---> Running in e43743f6b521
 ---> 831237777bc5
Removing intermediate container e43743f6b521
Successfully built 831237777bc5
[INFO] Built springio/gs-spring-boot-docker-master
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 32.046s
[INFO] Finished at: Thu Jun 21 10:29:30 CST 2018
[INFO] Final Memory: 34M/83M
[INFO] ------------------------------------------------------------------------
看到build success说明该项目的镜像创建成功,查看一下

docker images
运行该镜像

docker run -p 8010:8010 -t springio/gs-spring-boot-docker-master

 .net版

docker ps -a 查询所有容器
docker stop fe 停止某个容器
docker rm fe 删除某个容器
docker rmi usersystem
cd /home/publish/usersystem
ls 查看目录
rm -rf usersystem
rm -rf usersystem.zip
ls 查看是否删除(只保留一个Dockerfile就可以了)
rz 上传文件
ls 查看目录
unzip usersystem.zip
ls 查看目录usersystem 文件夹
docker build -f /home/publish/usersystem/Dockerfile -t usersystem .
docker run -d -p 8608:8608 --restart=always --name usersystem usersystem

原文地址:https://www.cnblogs.com/zhangzhiping35/p/14710843.html