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