如何使用docker部署springcloud???
Posted 整理是一切的开始
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用docker部署springcloud???相关的知识,希望对你有一定的参考价值。
如何使用docker部署springcloud??? springcloud 必须基于 springboot 项目来开发, 这里讲解springboot项目的部署, springcloud项目也是同理. 使用Dockerfile形式可部署. 示例: FROM frolvlad/alpine-oraclejdk8 VOLUME /usr/test ADD test.jar app.jar EXPOSE 8001 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] FROM: Docker是基于镜像的部署,幸运的是Docker官方和开发者们为我们维护了许多高质量的Docker镜像,而基于这些 镜像我们能做出符合自己需求的镜像.此处的FROM意思是我们即将要创建的镜像的基础镜像的名字,这个名字可以是 我们本地已有的镜像, 也可以是Docker Hub上的镜像,如果是Docker Hub上的镜像,此时docker daemon会为我们自动 下载该镜像. 还有一个要注意的点, 如果是本地镜像要加上版本(镜像名:版本号),否则默认版本号为latest. VOLUME: Docker的运行相当于是操作系统的一个进程,但是该进程又与普通进程有些许不同,因为该进程内部维护着的是我们的一个微服务的完整结构, 而往往项目中需要运行的微服务都有记录日志或者其他写出文件的功能,设想一下这样的情况: 我们的微服务现在正在运行,但是访问量突然增大, 开发人员又没有关注到这一点, 没有进行水平扩展,这时候很有可能这个微服务就down了, 而这个微服务一旦down了之后,出现的情况就是整个容器的status就变成了Exited,而此时如果将容器删除,容器中的所有数据卷会跟随容器 一起删除,因为这些数据卷是临时的, 此处的映射路径为 /usr/test .这是我们自定义的映射路径,后续要演示记录日志的功能. 当然也可以指定/tmp其效果都是在主机的/var/lib/docker/volumes目录下创建一个临时文件,并链接到容器的链接路径. 而为什么链接到容器的/tmp目录呢?因为SpringBoot使用的内嵌Tomcat容器默认使用/tmp作为工作目录. 当然此处的/tmp也可以变成你的日志记录文件夹,这样就可以在本地实时查看日志记录了. ADD: 将我们自身的项目admin.jar 作为 app.jar 加入到容器中. EXPORT: 该命令用于声明在运行时容器提供服务的端口. 注意:这只是一个声明,运行时并不会因为该声明就打开相应的端口. 该指令的作用是帮助镜像使用者理解该镜像服务的守护端口;其次是当运行时使用随机映射时(即run命令的-P参数), 会自动映射EXPORT的端口. ENTRYPOINT: 该命令制定Docker容器启动时执行的命令,可多次设置,但只有最后一条会生效. ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]这条命令中可能部分读者会对 -Djava.security.egd=file:/dev/./urandom 这条命令有疑惑,这是因为linux中和windows中取随机数时的参考策略不同, linux默认的随机数会被取完,导致返回-1,而制定/dev/./urandom这个取随机数的策略时,当随机数取完之后会返回随机数, 不至于影响业务. https://blog.csdn.net/qq_30770095/article/details/79648665
以上是关于如何使用docker部署springcloud???的主要内容,如果未能解决你的问题,请参考以下文章
使用Docker Compose部署SpringCloud项目docker-compose.yml文件示例