如何使用windows版Docker并在IntelliJ IDEA使用Docker运行Spring Cloud项目
如何使用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未开启,像这样。
不过如果你现在点击OK基本上是没有用的,得先去BIOS里打开硬件虚拟化,本机是惠普的机器,开启点按f10进入bios,其他品牌的机器自行搜索进入,像这样
重启电脑后docker会自动运行,依然弹出上面那个hyper-v未开启的窗口,这回可以点击OK让docker来帮你开启hyper-v,或者是自己在控制面板-程序-程序和功能-启用或关闭windows功能里开启hyper-v
到此,我们的docker for windows已经安装完成。在命令行中输入docker --version可以查看已经安装的docker版本
3.2 使用docker中的镜像
3.2.1 先用官方镜像作个示例
使用 docker search <imageName> 来搜索对应的镜像
然后使用 docker pull <镜像名:tag> 例如docker pull nginx:latest ,tag不输入是默认拉取最新的
当镜像下载玩之后我们通过docker images命令来查看所有本地的镜像
我这里下载了java以及nginx的镜像 其中还有我已经打包好的spring cloud的eureka注册中心的镜像
使用docker run命令来运行镜像,我这里运行nginx的镜像
使用docker运行nginx成功后访问localhost:80就可以访问到nginx的主页,说明我们已经在docker运行了我们的第一个镜像,虽然是官方镜像,但心里的成就感还是不低的。
好的,在运行了第一个镜像之后,我们要开始在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
如果你没用使用Docker Machine来管理虚拟机的需求的话,我们使用默认的Docker守护进程就OK了,不过在此之前我们还需要设置一下docker
将docker与本地的连接设置为不需要TLS加密。
在完成这一步之后,可以在IDEA的配置窗口看到成功连接到了本机上的docker
到这里,我们已经完成对docker的配置,接下来就可以进入真正的实施阶段。
#5:创建spring cloud项目
1.首先在Idea中创建一个spring boot项目,怎么创建在此就不再赘述了
创建完成之后,我们在pom.xml中添加依赖项
本地编写的是spring cloud的注册中心项目,所以还需要加上
spring的版本需要与spring cloud的版本号对应,详细的对应信息可以去http://projects.spring.io/spring-cloud/查看
由于本次只是简单地示范如何在IDEA中部署spring boot项目到docker中,所以在项目中只需要对eureka注册中心进行简单的配置就OK了,
在启动类中加上注解标明这是一个eureka注册中心的项目
在配置文件中配置端口
然后我们就完成了项目的编写,可以先启动看看项目是否能够启动,启动之后我们访问http://localhost:8761/ ,可以看到我们的eureka注册中心已经启动,项目编写没有问题
接下来就到了如何把项目部署到docker中去的问题了
#6:将项目部署到Docker中
首先我们需要编写Dockerfile文件,在src-main目录下新建docker文件夹,然后在其中新建Dockerfile文件
文件内容如下
其中红框的地方是本项目打包之后的jar包名字,默认是artifactId-version.jar,同时我们可以看到在左上叫有个运行的标记,很对,这个就是用来在IDEA构建jar包到镜像,然后放到Docker中运行的按钮,不过我们还是需要先配置一下
我们先配置镜像名称以及容器名称
然后需要对docker容器需要映射的端口号进行配置
然后我们点击run,可以看到,很快就报错了,这是由于DockerFile与我们生成的jar包不在同一个文件夹造成的。
为了解决这个问题,我找到了两种方案:
方案1:先使用maven命令
mvn clean package
对项目进行打包,命令执行完毕之后可以在target目录下看到已经打包完成的jar包
然后把jar包放到Dockerfile所在的目录下,像这样
然后接着点击Dockerfile中的运行,
在Deploylog窗口中,可以看到,这次构建镜像就成功了,在log窗口中可以看到我们的项目在运行过程中打出的日志信息
很明显,这次的构建和部署都成功了,访问http://localhost:8761/,出现了我们想要看到的东西。
在命令行中使用docker ps 命令查看正在运行的容器信息
可以看到,我们在IDEA中编写的项目已经运行到了docker中。
方案2:使用docker-maven-plugin插件,在pom.xml中配置插件
然后在ternimal中运行 mvn clean package -DskipTests=true docker:build命令,打包项目并构建镜像,命令执行完毕可以看到
在docker窗口下,我们构建的镜像已经出现在窗口中了
右键点击创建一个新的容器
跳转到我们的部署配置里面,只需要像方案1中的一样进行配置完毕后点击run就OK了,访问http://localhost:8761/,同样可以看到我们的eureka的运行信息。docker ps 命令也显示我们的容器已经运行起来。
#7:总结
好的,到这里我们先是在安装了windows版的docker,然后使用IDEA创建了一个spring cloud项目,并在IDEA中将此项目部署到了docker中,本次随笔就到此为止了。
如果你对本篇博客有兴趣的话,欢迎共同交流和讨论
有任何问题请联系hei12138@outlook,com
如何使用windows版Docker并在IntelliJ IDEA使用Docker运行Spring Cloud项目的更多相关文章
- IntelliJ IDEA上创建maven Spring MVC项目
IntelliJ IDEA上创建Maven Spring MVC项目 各软件版本 利用maven骨架建立一个webapp 建立相应的目录 配置Maven和SpringMVC 配置Maven的pom.x ...
- IntelliJ 启动不同端口的两个spring cloud项目
IntelliJ 启动不同端口的两个spring cloud项目 1,使用maven进行clean package 2,在Terminal界面,输入java -jar xxx.jar --server ...
- SpringCloud教程 | 第十一篇: docker部署spring cloud项目
版权声明:本文为博主原创文章,欢迎转载,转载请注明作者.原文超链接 ,博主地址:http://blog.csdn.net/forezp. http://blog.csdn.net/forezp/art ...
- 史上最简单的SpringCloud教程 | 第十一篇: docker部署spring cloud项目
转载请标明出处: 原文首发于:https://www.fangzhipeng.com/springcloud/2017/07/12/sc11-docker/ 本文出自方志朋的博客 一.docker简介 ...
- SpringCloud 教程 (四) docker部署spring cloud项目
一.docker简介 Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机). ...
- 使用IntelliJ IDEA创建简单的Spring Boot项目
方法一: File - New -Project 创建结束后进行测试运行,修改代码如下: package com.springboot.testone; import org.springframew ...
- 【spring cloud】【docker】使用docker在centOS上部署spring cloud微服务架构服务
项目GitHub地址 ================================================================================== 部署过程: ...
- 【译文】用Spring Cloud和Docker搭建微服务平台
by Kenny Bastani Sunday, July 12, 2015 转自:http://www.kennybastani.com/2015/07/spring-cloud-docker-mi ...
- Spring Cloud(三):服务提供与调用 Eureka【Finchley 版】
Spring Cloud(三):服务提供与调用 Eureka[Finchley 版] 发表于 2018-04-15 | 更新于 2018-05-07 | 上一篇文章我们介绍了 Eureka 服务 ...
随机推荐
- 谈谈分布式版本管理工具Git
一.主流的版本管理工具 目前在企业中比较主流的版本管理工具有:GIT.SVN.CVS等等. 二.什么是Git? Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.是 L ...
- 性能测试系列学习 day1
性能测试的最终目标是为了最大限度的满足用户的需求,我们通常为了达到以下目标而进行性能测试: (1)评估系统的能力:测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策: (2 ...
- MySQL整数类型说明 int(5) vs int(7)
今天突然发现, mysql 中int(1)和tinyint(1)中的1只是指定显示长度,并不表示存储长度,只有字段指定zerofill时有用.位数限制基本没有意义. int(5) 这里的5表示的是 最 ...
- postgresql如何维护WAL日志/归档日志
WAL日志介绍 wal全称是write ahead log,是postgresql中的online redo log,是为了保证数据库中数据的一致性和事务的完整性.而在PostgreSQL 7中引入的 ...
- Apache2 httpd.conf 配置详解(一)
常用配置指令说明 ServerRoot:服务器的基础目录,一般来说它将包含conf/和logs/子目录,其它配置文件的相对路径即基于此目录.默认为安装目录,不需更改. 语法:ServerRoot di ...
- Centos7 & Docker & Jenkins & ASP.NET Core 2.0 自动化发布和部署
写在前面 Docker一直很火热,一直想把原本的Jenkins自动部署工具搬到Docker上面,无奈今年一直忙于各种事情,迟迟未实施这个事情,正好迎来了dotnet core 2.0 的正式发布,升级 ...
- 转: 深入Java虚拟机】之二:Class类文件结构
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17675609 平台无关性 Java是与平台无关的语言,这得益于Java源代码编译后生成的存 ...
- 结对编程1-四则运算GUI实现(58、59)
题目描述 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序.进一步,本次要求把这个程序做成GUI(可以是Windows PC 上的,也可以是Mac.Linux,web,手机上的),成为一 ...
- spring的配置文件和加载
①:创建applicationContext.xml配置文件放在src下 //applicationContext.xml代码 <?xml version="1.0" enc ...
- 201521123017 《Java程序设计》第4周学习总结
1. 本周学习总结 2. 书面作业 Q1.注释的应用 使用类的注释与方法的注释为前面编写的类与方法进行注释,并在Eclipse中查看.(截图) Q2.面向对象设计(大作业1,非常重要) 2.1 将 ...