设为首页 收藏本站
查看: 1479|回复: 0

[经验分享] 如何使用windows版Docker并在IntelliJ IDEA使用Docker运行Spring Cloud项目

[复制链接]
发表于 2017-12-6 14:20:58 | 显示全部楼层 |阅读模式
如何使用windows版Docker并在IntelliJ IDEA使用Docker运行Spring Cloud项目
#1:前提准备
  1.1 首先请确认你的电脑是windows10专业版或企业版,只有这只有这两个版本才带有hyper-v
#2:介绍
  以往我们如果想要在windows上使用docker,都是使用virual box来创建虚拟机,自从windows10发布以来,微软宣布了一系列的linux软件登陆windows,其中就包括了docker,现在我们可以使用windows自带的hyper-v虚拟机来创建运行docker服务。
  InteliiJ Idea作为目前最实用的IDE对Docker也提供了支持。
#3:安装Docker for windows
  3.1 从官网下载docker for windows,https://store.docker.com/editions/community/docker-ce-desktop-windows,下载完毕后进入安装界面,docker会自动安装,界面一闪而过,电脑运行速度还不错,安装完成之后,docker会弹个窗告诉你hyper-v未开启,像这样。 DSC0000.png
  不过如果你现在点击OK基本上是没有用的,得先去BIOS里打开硬件虚拟化,本机是惠普的机器,开启点按f10进入bios,其他品牌的机器自行搜索进入,像这样 DSC0001.png
  重启电脑后docker会自动运行,依然弹出上面那个hyper-v未开启的窗口,这回可以点击OK让docker来帮你开启hyper-v,或者是自己在控制面板-程序-程序和功能-启用或关闭windows功能里开启hyper-v
DSC0002.png

  到此,我们的docker for windows已经安装完成。在命令行中输入docker --version可以查看已经安装的docker版本
DSC0003.png

  3.2 使用docker中的镜像
  3.2.1  先用官方镜像作个示例
  使用 docker search <imageName> 来搜索对应的镜像
DSC0004.png

  然后使用 docker pull <镜像名:tag> 例如docker pull nginx:latest  ,tag不输入是默认拉取最新的  DSC0005.png
  当镜像下载玩之后我们通过docker images命令来查看所有本地的镜像
DSC0006.png

  我这里下载了java以及nginx的镜像 其中还有我已经打包好的spring cloud的eureka注册中心的镜像
  使用docker run命令来运行镜像,我这里运行nginx的镜像
DSC0007.png

  使用docker运行nginx成功后访问localhost:80就可以访问到nginx的主页,说明我们已经在docker运行了我们的第一个镜像,虽然是官方镜像,但心里的成就感还是不低的。
DSC0008.png

  好的,在运行了第一个镜像之后,我们要开始在IntelliJ IDEA中使用docker并构建我们的第一个spring boot程序放到docker中去运行
#4:IDEA的准备工作
  1:Docker插件,首先需要在你的IDEA中安装Docker插件,定位到File-Setting-Plugins后搜索Docker Integration安装。
  2:配置Docker服务器,在IDEA中定位到File-Setting-build,Execution,Deployment-Docker
DSC0009.png

  如果你没用使用Docker Machine来管理虚拟机的需求的话,我们使用默认的Docker守护进程就OK了,不过在此之前我们还需要设置一下docker
DSC00010.png

DSC00011.png

  将docker与本地的连接设置为不需要TLS加密。
  在完成这一步之后,可以在IDEA的配置窗口看到成功连接到了本机上的docker
DSC00012.png

  到这里,我们已经完成对docker的配置,接下来就可以进入真正的实施阶段。
#5:创建spring cloud项目
  1.首先在Idea中创建一个spring boot项目,怎么创建在此就不再赘述了
  创建完成之后,我们在pom.xml中添加依赖项
DSC00013.png

  本地编写的是spring cloud的注册中心项目,所以还需要加上
DSC00014.png

  spring的版本需要与spring cloud的版本号对应,详细的对应信息可以去http://projects.spring.io/spring-cloud/查看
  由于本次只是简单地示范如何在IDEA中部署spring boot项目到docker中,所以在项目中只需要对eureka注册中心进行简单的配置就OK了,
  在启动类中加上注解标明这是一个eureka注册中心的项目
DSC00015.png

  在配置文件中配置端口
DSC00016.png

  然后我们就完成了项目的编写,可以先启动看看项目是否能够启动,启动之后我们访问http://localhost:8761/ ,可以看到我们的eureka注册中心已经启动,项目编写没有问题
DSC00017.png

  接下来就到了如何把项目部署到docker中去的问题了
#6:将项目部署到Docker中
  首先我们需要编写Dockerfile文件,在src-main目录下新建docker文件夹,然后在其中新建Dockerfile文件
  文件内容如下
DSC00018.png

  其中红框的地方是本项目打包之后的jar包名字,默认是artifactId-version.jar,同时我们可以看到在左上叫有个运行的标记,很对,这个就是用来在IDEA构建jar包到镜像,然后放到Docker中运行的按钮,不过我们还是需要先配置一下
DSC00019.png

  我们先配置镜像名称以及容器名称
DSC00020.png

  然后需要对docker容器需要映射的端口号进行配置
DSC00021.png

  然后我们点击run,可以看到,很快就报错了,这是由于DockerFile与我们生成的jar包不在同一个文件夹造成的。
DSC00022.png

  为了解决这个问题,我找到了两种方案:
方案1:先使用maven命令
  mvn clean package
  对项目进行打包,命令执行完毕之后可以在target目录下看到已经打包完成的jar包
DSC00023.png

  然后把jar包放到Dockerfile所在的目录下,像这样
DSC00024.png

  然后接着点击Dockerfile中的运行,
DSC00025.png

  在Deploylog窗口中,可以看到,这次构建镜像就成功了,在log窗口中可以看到我们的项目在运行过程中打出的日志信息
DSC00026.png

  很明显,这次的构建和部署都成功了,访问http://localhost:8761/,出现了我们想要看到的东西。
DSC00027.png

  在命令行中使用docker ps 命令查看正在运行的容器信息
DSC00028.png

  可以看到,我们在IDEA中编写的项目已经运行到了docker中。
方案2:使用docker-maven-plugin插件,在pom.xml中配置插件
DSC00029.png

  然后在ternimal中运行 mvn clean package -DskipTests=true docker:build命令,打包项目并构建镜像,命令执行完毕可以看到
DSC00030.png

  在docker窗口下,我们构建的镜像已经出现在窗口中了
DSC00031.png

  右键点击创建一个新的容器
DSC00032.png

  跳转到我们的部署配置里面,只需要像方案1中的一样进行配置完毕后点击run就OK了,访问http://localhost:8761/,同样可以看到我们的eureka的运行信息。docker ps 命令也显示我们的容器已经运行起来。
DSC00033.png

#7:总结
  好的,到这里我们先是在安装了windows版的docker,然后使用IDEA创建了一个spring cloud项目,并在IDEA中将此项目部署到了docker中,本次随笔就到此为止了。
  如果你对本篇博客有兴趣的话,欢迎共同交流和讨论
  有任何问题请联系hei12138@outlook,com

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-421342-1-1.html 上篇帖子: centos7 安装 NVIDIA Docker 下篇帖子: docker搭建wordpress
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表