如果您想了解MyEclipse使用Docker的JavaEE开发和java使用docker的知识,那么本篇文章将是您的不二之选。我们将深入剖析MyEclipse使用Docker的JavaEE开发的各个
如果您想了解MyEclipse使用Docker的JavaEE开发和java 使用docker的知识,那么本篇文章将是您的不二之选。我们将深入剖析MyEclipse使用Docker的JavaEE开发的各个方面,并为您解答java 使用docker的疑在这篇文章中,我们将为您介绍MyEclipse使用Docker的JavaEE开发的相关知识,同时也会详细的解释java 使用docker的运用方法,并给出实际的案例分析,希望能帮助到您!
本文目录一览:- MyEclipse使用Docker的JavaEE开发(java 使用docker)
- Docker中Dockerfile之容器中运行MyEclipse搭建的JavaWeb项目
- docker基础内容讲解②(对于javaee开发人员)
- Eclipse使用错误的Java家庭
- Java EE开发工具MyEclipse 2015正式版发布
MyEclipse使用Docker的JavaEE开发(java 使用docker)
肖远昊 译 分布式实验室
第1节:关于Docker
@H_301_15@复杂的应用程序正在向容器化技术(如Docker)转移,以方便部署,简化管理,提高可靠性,平台可移植性和微服务支持,因此如果你的应用程序尚未部署在容器中,相信你很快就会。Docker容器将软件包装在完整的文件系统中,包含运行所需的所有内容:代码,运行时,系统工具,系统库 – 这些安装在服务器上的东西。
第2节:安装Docker
@H_301_15@
注意:对于Mac或Windows,都要双击安装程序。下载并运行的所有步骤以及验证/测试方法可以参考:(Mac,https://docs.docker.com/mac/step_one/;Windows,https://docs.docker.com/windows/step_one/)。请确保在安装指南的步骤4中“鲸鱼”图标可见,并且“hello-world”容器已成功运行。
第3节:安装MyEclipse
@H_301_15@第4节:构建Web示例程序
@H_301_15@启动MyEclipse
选择MyEclipse > Examples On-Demand。“示例”选项卡就会在MyEclipse仪表板上打开。
选择Spring,然后点击”Cart Example”那个示例的Install按钮。
一旦安装完成,”SpringShoppingCartExample”工程就会被添加到你的workspace中。
第5节:创建一个Tomcat 7 Docker容器
@H_301_15@1. 为工程创建一个Dockerfile
在”SpringShoppingCartExample”工程上点击右键,选择New > Folder。将文件夹命令为”DockerResources”。
在”DockerResources”文件夹上点击右键,选择New > File。将文件命令为”Dockerfile”(保证名称和大小写一致)。
在Dockerfile中加入:
# We'll be using the curated Tomcat 7 container from dockerhub
FROM tomcat:7
你的工作空间(workspace)将如下图所示:
2. 设置Docker命令的终端
使用Docker容器涉及在shell中直接运行大量命令行,可以从MyEclipse中轻松地使用Terminal视图来完成,如下所述:
打开应用程序首选项(preferences),选择Terminal > Local Terminal,然后在Arguments中写入”-l”(这是一个dask-el)。这样确保你在“终端”视图中启动的shell与登录shell类似,并且能够获得正确的执行路径,因此你可以找到所有Docker工具箱命令。
打开一个终端,工作目录就是之前建立的”DockerResources”。右击”DockerResources”,然后选择Show In > Terminal。
3.eval命令将设置环境变量,让Docker命令能够正常工作,docker version命令将简单地显示目前的环境配置。
$ eval $(docker-machine env default) $ docker version Client: Version: 1.11.1 API version: 1.23 Go version: go1.5.4 Git commit: 5604cbe Built: Tue Apr 26 23:44:17 2016 OS/Arch: darwin/amd64
Server: Version: 1.11.1 API version: 1.23 Go version: go1.5.4 Git commit: 5604cbe Built: Wed Apr 27 00:34:20 2016 OS/Arch: linux/amd64
第6节:测试Tomcat 7 Docker容器
@H_301_15@构建一个Tomcat 7 Docker容器的镜像 – 根据Dockerfile文档中的说明使用下面提到的命令。
注意:镜像是容器的详细定义,类似于类是实例化对象的详细定义。
下面的命令行将会:
构建一个容器镜像
将镜像存放到本地仓库MyEclipse中
将镜像命名为examples
创建一个带有”run”标签的版本
$ docker build -t myeclipse/examples:run Sending build context to Docker daemon 2.048 kB Step 1 : FROM tomcat:7 ---> 705d4a88eedc Successfully built 705d4a88eedc
1. 在终端上运行如下命令来启动一个容器。这条命令告诉Docker服务端使用后台进程启动一个容器(使用-d参数),并且将容器内的端口8080(Tomcat默认端口)映射到宿主机上的8080端口,宿主机指的是一个运行所有Docker容器的虚拟机。Docker服务端将返回正在运行的容器的内部ID。
$ docker run -d -p 8080:8080 myeclipse/examples:run 12b15728e8adab5e49e484524a319f7349275f3165294161c3118220801ea7
提示:运行ps命令可获取运行容器的更详细状态。
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 12b15728e8ad myeclipse/examples:run "catalina.sh run"
下面的命令告诉Docker宿主机的IP:
$ docker-machine env export DOCKER_TLS_VERIFY="1" export DOCKER_HOST="tcp://192.168.99.100:2376" export DOCKER_CERT_PATH="/Users/todd/.docker/machine/machines/default" export DOCKER_MACHINE_NAME="default"
2. 关闭Tomcat 7 Docker容器
$ docker stop cranky_mcnulty
1. 配置SpringShoppingCartExample的部署
1. 新建一个部署,在工程上点击右键,选择MyEclipse > Add and Remove Project Deployments…
2. 在”Manage Deployments”对话框中,点击Add…按钮,为部署选择一个新的服务类型。
3. 在”Deploy Modules”对话框中:
选择”manually define a new server”
在”Basic”栏目中,选择”Externally Launched Server”
最后,在”Server name”中填上”Docker Tomcat 7 Container”,然后点击”Next”按钮。
@H_213_301@
4. Docker安装设置一些虚拟机配置,能够更容易共享主目录下的任何位置,在”Deploy Location”中填入”
5. 发布
6. 状态将会变成”Synchronized”。将鼠标悬停在部署行上,在弹出的窗口上确认应用程序现在是否已部署到指定的位置。MyEclipse让所设定的位置与在工作区中对代码所做的任何更改保持同步,这使得在Docker容器中测试更改变得非常简单。
2. 使用我们的部署来启动Docker容器
1. 我们需要启动Docker容器,以便将本地部署映射到容器文件系统中的正确位置。这可以使用-v选项作为docker run命令的一部分,通过指定的数据卷映射来实现。下面的命令与之前用于启动Docker容器的命令完全相同,只是现在我们将SpingShoppingCartExample的部署目录映射到Docker容器中文件系统的正确位置,以便Tomcat知道应用程序已部署。完整命令如下所示:
docker run -v "/Users/todd/Applications/DockerDeployments/SpringShoppingCartExample":/usr/local/tomcat/webapps/SpringShoppingCartExample -p 8080:8080 -d myeclipse/examples:run
2. 使用MyEclipse内部的Web浏览器,打开网址http://192.168.99.100:8080/SpringShoppingCartExample/%22,然后就会看到Tomcat 7 Docker容器中运行这”SpringShoppingCartExample”。成功运行的屏幕截图如下所示:
最后的提示
@H_301_15@既然你熟悉一些关键的Docker命令,那么快捷方式是什么?MyEclipse 2016 CI 4加入了将经常使用的Docker命令从Snippets视图拖放到终端的功能 – 一个真正节省时间的方式!
总结
@H_301_15@希望文章中对Docker容器的介绍对你有用,并且现在你可以在Docker容器中运行SpringShoppingCartExample。我敢打赌,你会认为能够轻松地调试这个应用程序是一件很赞的事情,我将在下一篇博客中介绍关于调试的细节。
本文为翻译文章,点击阅读原文链接即可查看原文。
Docker中Dockerfile之容器中运行MyEclipse搭建的JavaWeb项目
这篇文章将讲述如何将上一篇文章中的Javaweb项目制作成Docker的镜像。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
应用程序在Docker容器中运行和在物理机运行的原理是一样的,所以我们部署这个Javaweb项目到Docker中的步骤应该如下:
- 服务器支持(这里选择Centos7)
- 安装Java环境
- 安装Tomcat环境
- 将Tomcat根目录下的webapps/ROOT目录下的所有文件(夹)删除
- 将自己开发的web项目的WebRoot目录下的所有文件(夹)复制到Tomcat的webapps/ROOT下
- 启动Tomcat服务
步骤已经很清楚了,但要制作Docker镜像还得借助另一样东西:Dockerfile。
Dockerfile是一个包含有Docker能识别的特殊指令的文件。当创建好Dockerfile文件之后就可以使用docker build来创建docker镜像了。
开始构建Docker镜像
- 创建一个本示例的文件夹webapp
- 将项目的WebRoot拷贝到该文件夹
- 创建Dockerfile文件
结构如下图:
构建Docker镜像结构图
创建镜像
docker build -t "zsl131/web01" .
注意:
docker build:创建Docker镜像
-t "zsl131/web01":指定镜像名称,这里指定为zsl131/web01;镜像名称由仓库和名称两部份组成,zsl131为我在hub.docker.com注册申请的仓库名称,web01才是这个镜像的名称
.:注意前面有个空格,表示在当前目录下找Dockerfile文件来构建镜像。
下面是本示例创建Docker镜像的Dockerfile,为了更加认识Dockerfile可以将下面文件中的指令全部删除,然后每加一行执行一次:docker build -t "zsl131/web01" .,这样可以看到使用Dockerfile来构建镜像时的各种信息:
# 以Centos7作为基础镜像 FROM centos:7 # 在不知道该如何安装jdk时可以启用下面这行命令,然后就直接运行:docker build #RUN yum search java | grep jdk # 选择适合的jdk版本安装 RUN yum install -y java-1.7.0-openjdk.x86_64 # 在根目录下创建一个名为web的目录 RUN mkdir /web/ # 设置工作目录为/web,设置之后可以使用:RUN pwd来查看当前的路径 WORKDIR /web/ # 安装wget以方便下载tomcat RUN yum install -y wget # 下载tomcat压缩文件 RUN wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-6/v6.0.48/bin/apache-tomcat-6.0.48.tar.gz # 解压tomcat文件 RUN tar zxvf apache-tomcat-6.0.48.tar.gz # 设置工具目录 WORKDIR /web/apache-tomcat-6.0.48/webapps/ROOT/ # 查看当前目录下的所有文件(夹),这时会有tomcat自带的一些文件 RUN ls -l # 删除当前目录下的所有文件(夹) RUN rm -rf * # 删除后再列表,这时没有任何文件 RUN ls -l # 将WebRoot目录下的所有文件(夹)复制到当前目录即(webapps/ROOT),这里也可以使用COPY指令 ADD WebRoot . # 复制完成后可以再列表看一下是否复制成功 RUN ls -l # 设置工作目录到tomcat的bin目录下,以方便启动tomcat服务 WORKDIR /web/apache-tomcat-6.0.48/bin/ # 对外暴露tomcat的8080端口 EXPOSE 8080 # 启动tomcat服务,这样启动不会在docker run时被覆盖 ENTRYPOINT ["./catalina.sh", "run"]
完成Dockerfile的编写后,最后再通过以下命令构建镜像:
docker build -t "zsl131/web01" .
通过命令docker images可以查看刚刚构建的镜像。
运行容器
docker run -d --name web01 -p 80:8080 zsl131/web01
说明:
docker run:运行容器命令
-d:后台运行
--name web01:设置容器名称为web01
-p 80:8080:将对外暴露的端口指定为80,即当外部访问80端口时会映射到容器内的8080端口
zsl131/web01:镜像名称
查看容器启动日志
docker logs web01
说明:
docker logs:查看容器日志命令
web01:被查看的容器名称,这里是web01
访问
打开浏览器输入:http://192.168.99.100即可访问由MyEclipse创建的Javaweb项目了。
注意:192.168.99.100是我docker宿主机的ip地址,可以通过docker-machine inspect test01来查看,其中test01是docker宿主机的名称。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
- Docker使用Dockerfile创建支持ssh服务自启动的容器镜像
- docker容器内要启动两个进程时Dockerfile的实现代码
- Docker容器上用DockerFile部署多个tomcat服务的步骤
- 如何使用 Dockerfile 创建一个简单容器
docker基础内容讲解②(对于javaee开发人员)
docker基础内容讲解
文章目录
- docker基础内容讲解
- 一、初识docker
- 1.docker是什么
- 2.docker的理念
- 3.docker能干嘛
- ①之前的虚拟机
- ②引入docker后
- ③企业中
- 4.去哪里下
一、初识docker
1.docker是什么
一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员都是考验
Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案。
环境配置如此麻烦,换一台机器,就要重来一次,费力费时。很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说,安装的时候,把原始环境一模一样地复制过来。开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。
之前在服务器配置一个应用的运行环境,要安装各种软件,就拿尚硅谷电商项目的环境来说吧,Java/Tomcat/MysqL/JDBC驱动包等。安装和配置这些东西有多麻烦就不说了,它还不能跨平台。假如我们是在 Windows 上安装的这些环境,到了 Linux 又得重新装。况且就算不跨操作系统,换另一台同样操作系统的服务器,要移植应用也是非常麻烦的。
传统上认为,软件编码开发/测试结束后,所产出的成果即是程序或是能够编译执行的二进制字节码等(java为例)。而为了让这些程序可以顺利执行,开发团队也得准备完整的部署文件,让维运团队得以部署应用程式,开发需要清楚的告诉运维部署团队,用的全部配置文件+所有软件环境。不过,即便如此,仍然常常发生部署失败的状况。Docker镜像的设计,使得Docker得以打破过去「程序即应用」的观念。透过镜像(images)将作业系统核心除外,运作应用程式所需要的系统环境,由下而上打包,达到应用程式跨平台间的无缝接轨运作。
2.docker的理念
Docker是基于Go语言实现的云开源项目。
Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次封装,到处运行”。
Linux 容器技术的出现就解决了这样一个问题,而 Docker 就是在它的基础上发展过来的。将应用运行在 Docker 容器上面,而 Docker 容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作
3.docker能干嘛
①之前的虚拟机
虚拟机(virtual machine)就是带环境安装的一种解决方案。
它可以在一种操作系统里面运行另一种操作系统,比如在Windows 系统里面运行Linux 系统。应用程序对此毫无感知,因为虚拟机看上去跟真实系统一模一样,而对于底层系统来说,虚拟机就是一个普通文件,不需要了就删掉,对其他部分毫无影响。这类虚拟机完美的运行了另一套系统,能够使应用程序,操作系统和硬件三者之间的逻辑不变。
虚拟机的缺点:
1 资源占用多 2 冗余步骤多 3 启动慢
②引入docker后
由于前面虚拟机存在这些缺点,Linux 发展出了另一种虚拟化技术:Linux 容器(Linux Containers,缩写为 LXC)。
Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离。有了容器,就可以将软件运行所需的所有资源打包到一个隔离的容器中。容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作所需的库资源和设置。系统因此而变得高效轻量并保证部署在任何环境中的软件都能始终如一地运行。
比较了 Docker 和传统虚拟化方式的不同之处:
*传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;
*而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。
- 每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。
- 更快的应用交付和部署:传统的应用开发完成后,需要提供一堆安装程序和配置说明文档,安装部署后需根据配置文档进行繁杂的配置才能正常运行。Docker化之后只需要交付少量容器镜像文件,在正式生产环境加载镜像并运行即可,应用安装配置在镜像里已经内置好,大大节省部署配置和测试验证时间。
- 更便捷的升级和扩缩容:随着微服务架构和Docker的发展,大量的应用会通过微服务方式架构,应用的开发构建将变成搭乐高积木一样,每个Docker容器将变成一块“积木”,应用的升级将变得非常容易。当现有的容器不足以支撑业务处理时,可通过镜像运行新的容器进行快速扩容,使应用系统的扩容从原先的天级变成分钟级甚至秒级。
- 更简单的系统运维:应用容器化运行后,生产环境运行的应用可与开发、测试环境的应用高度一致,容器会将应用程序相关的环境和状态完全封装起来,不会因为底层基础架构和操作系统的不一致性给应用带来影响,产生新的BUG。当出现程序异常时,也可以通过测试环境的相同容器进行快速定位和修复。
- 更搞笑的计算资源利用:Docker是内核级虚拟化,其不像传统的虚拟化技术一样需要额外的Hypervisor支持,所以在一台物理机上可以运行很多个容器实例,可大大提升物理服务器的cpu和内存的利用率。
③企业中
新浪:
美团:
蘑菇屋;
4.去哪里下
docker官网:docker官网
docker中文官网:docker中文官网
docker hub官网:docker hub官网
Eclipse使用错误的Java家庭
我在Windows上使用Eclipse,我不明白为什么它使用特定的Java版本。 我可以检查Java版本使用的Eclipse做这个帮助 – >关于Eclipse – >安装细节 – >configuration 。 java.home被设置为C: Program Files Java jre1.8.0_65 。 但是我的环境variables是这样configuration的:
JAVA_7_HOME:C: java jdk1.7.0_79
JAVA_8_HOME:C: java jdk1.8.0_60
JAVA_HOME:%JAVA_8_HOME%
PATH:…;%JAVA_HOME% bin; …;
为什么Eclipse不使用C: java jdk1.8.0_60作为java.home 。
如何将蓝牙4.0 /智能/低功耗设备连接到Windows 7
android中aapt.exe的function是什么?
C ++ Windows – 如何从PID获取进程path
C#/ VB.NET中的缩略图
修改GetCommandLine()的命令行参数
JAVA_HOME环境变量不应该与java.home系统属性相同。 JAVA_HOME是一个OS级别的环境设置,而java.home是由JVM在启动时建立的一个Java级别的属性; 它表示当前正在运行的JRE的根目录(可能与您将JAVA_HOME指向的目录不同)。
您没有得到您所期望的java.home的值的原因可能是因为您尚未向Eclipse指定您希望运行哪个JVM(与您在Preferences中看到的已安装的JRE分开)。 按照在eclipse.ini指定JVM的指示,把它指向你想要的JDK位置(根据你上面的例子, C:javajdk1.8.0_60 ),那么Eclipse会报告这个值为java.home因为这将是运行Eclipse本身的JVM)。
您可以通过以下方式设置Eclipse的默认JRE:
转到全局首选项
单击Java – > Installed JREs
你会发现一个可用于Eclipse的JRE列表,其中一个将被默认选中
如果JRE8u60不在列表中,则可以Add... ,然后将其设置为默认值
Java EE开发工具MyEclipse 2015正式版发布
JavaScript for Modern UIs
运用MyEclipse集成的Tern.js,你会发现用JavaScript开发Web和移动应用程序都会非常容易。和传统的基于
Eclipse的JavaScript代码帮助相比,MyEclipse可以节省大量的编程时间。还有可扩展的丰富模块:AngularJS, node.js, Chrome Apps 和 YUI。
REST技术的云端连接
现在很多主流的应用比如Tumblr, Location Services, Google 和 Twitter都是运用REST技术,MyEclipse也不例外。全新的REST浏览器以及REST模块带来极速体验!
更加简单易用
在IDE里面找东西是非常浪费时间的事情,而快速找到想要的东西可以让编程效率大幅度提升。MyEclipse
2015继续优化了资源管理器,相比传统的项目面板增加了更多的项目资源信息,并增加了一个高级搜索框,可让你快速找到想要的资源文件。从2015开始,你还可以同时向一个app 服务器添加多个项目。
Mobile Landscape
跨平台移动App风头正劲,运用Java IDE MyEclipse,可以让你的跨平台开发更加轻松。运用全新的PhoneGap/Cordova混合技术,在后端开发移动app的同一批开发者也可以构建UI,并且不需要专门针对每个平台从新进行学习。
MyEclipse提供的Mobile模板也非常实用,即使是新手也可以很快上手。
更多后端服务控件
对于实用WebSphere的企业,部署的改进也帮他们大幅度提升了效率。选择了Tomcat服务器的人也有福了!新版本增加了更多服务器配置选项。
架构改进
MyEclipse 2015版改进了自定义服务器连接器,新增了更多控件和服务器配置。值得一提的是,TomEE 1.7 和 Pivotal tc Server 3.0这些新服务器版本也新增了连接器。
MyEclipse 2015正式版1.0更新总览:
Custom Integration of tern.java
Initial Support for AngularJS
New REST Explorer Provides More Flexibility
REST Web Services Project Explorer
Mobile Tooling - PhoneGap Support
New PhoneGap Configuration Editor
PhoneGap Project JQuery Mobile Templates
Server Connectors Updated to the WTP Framework
Deployment Mode Flexibility for Tomcat App Servers
Custom Deployment Server
Pivotal tc Server 3.0 Support
Updated TomEE Server Connector
Dashboard and Other Tools Make Tasks Easier
Coding Report
Improved Dark Theme
Built on Luna 4.4.1
Update to MyEclipse Reports
Intelligent Merged Deployment
New Maven Dependencies-Only Mode
JSP Editor Performance Improvements
Updated Spring Support
Try Upgraded Features with Integrated Upgrade Trials
Other Notable Additions
Known Issues
MyEclipse 2015下载
关于MyEclipse使用Docker的JavaEE开发和java 使用docker的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Docker中Dockerfile之容器中运行MyEclipse搭建的JavaWeb项目、docker基础内容讲解②(对于javaee开发人员)、Eclipse使用错误的Java家庭、Java EE开发工具MyEclipse 2015正式版发布等相关知识的信息别忘了在本站进行查找喔。
本文标签: