首页 文章 精选 留言 我的

精选列表

搜索[部署工具],共10000篇文章
优秀的个人博客,低调大师

Docker部署JavaWeb项目实战(转)

摘要:本文主要讲了如何在Ubuntu14.04 64位系统下来创建一个运行Java web应用程序的Docker容器。 一、下载镜像、启动容器 1、下载镜像 先查看镜像 [html] view plain copy dockerimages 记住这个Image ID,下面我们启动容器需要用到它。如果看到以上输出,说明您可以使用“oursuer/ubuntu”这个镜像了,或将其称为仓库(Repository),该镜像有一个名为“14.04”的标签(Tag),此外还有一个名为1f879014f4d2 的镜像 ID(可能您所看到的镜像 ID 与此处的不一致,那是正常现象,因为这个数字是随机生成的)。此外,我们可以看到该镜像只有188.4 MB,非常小巧,而不像虚拟机的镜像文件那样庞大。现在镜像已经有了,我们下面就需要使用该镜像,来启动容器。 2、启动容器容器是在镜像的基础上来运行的,一旦容器启动了,我们就可以登录到容器中,安装自己所需的软件或应用程序。既然镜像已经下载到本地,那么如何才能启动容器呢?只需使用以下命令即可启动容器: [plain] view plain copy dockerrun-i-t-v/download/:/mnt/software/1f879014f4d2/bin/bash 这条命令比较长,我们稍微分解一下,其实包含以下三个部分: [html] view plain copy dockerrun<相关参数><镜像ID><初始命令> 如果看到以上输出,说明您可以使用“docker.cn/docker/centos”这个镜像了,或将其称为仓库(Repository),该镜像有一个名为“centos6”的标签(Tag),此外还有一个名为“25c5298b1a36 ”的镜像 ID(可能您所看到的镜像 ID 与此处的不一致,那是正常现象,因为这个数字是随机生成的)。此外,我们可以看到该镜像只有 215.8 MB,非常小巧,而不像虚拟机的镜像文件那样庞大。 现在镜像已经有了,我们下面就需要使用该镜像,来启动容器。 [plain] view plain copy 其中,相关参数包括: -i:表示以“交互模式”运行容器 -t:表示容器启动后会进入其命令行 -v:表示需要将本地哪个目录挂载到容器中,格式:-v<宿主机目录>:<容器目录> 假设我们的所有安装程序都放在了宿主机的/download/目录下,现在需要将其挂载到容器的/mnt/software/目录下。 需要说明的是,不一定要使用“镜像 ID”,也可以使用“仓库名:标签名”,例如:oursuer/ubuntu:14.04。 初始命令表示一旦容器启动,需要运行的命令,此时使用“/bin/bash”,表示什么也不做,只需进入命令行即可。 退出容器使用Ctrl+d或输入exit 如果退出容器后,可以再次使用命令(注意,得先运行docker run之后然后被stop掉的容器才可以使用如下命令) [plain] view plain copy dockerstart容器ID 其中容器ID。使用命令docker ps -a来看,如下: 然后再次启动已启动过但现在是关闭的容器 [plain] view plain copy dockerstartsick_mestorf 这个命令只会启动容器,不会进入容器。要进入容器得用命令 [plain] view plain copy dockerattach容器ID或容器名 如下: 二、安装相关软件 首先先将JDK和tomcat的安装包.gz文件放在外面的/download文件夹下 然后再次启动容器。进入容器 然后看看是否有安装包。发现两个都在了,下面可以安装了 1、JDK安装 直接使用 [plain] view plain copy cd/usr mkdirjava cdjava mkdirjdk cd/mnt/software/ tarzxvfjdk-8u65-linux-x64.gz-C/usr/java/jdk 这里直接接文件解压到/usr/java/jdk目录,如下 配置环境变量输入: [plain] view plain copy vi/etc/profile 或 添加如下内容: [plain] view plain copy #setjavaenvironment exportJAVA_HOME=/usr/java/jdk/jdk1.8.0_65 exportJRE_HOME=/usr/java/jdk/jdk1.8.0_65/jre exportCLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH exportPATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH 注意此处改成对应的jdk的目录,并且要以root用户来做修改,否则无法保存 保存后执行: [plain] view plain copy source/etc/profile 验证安装: 输入: [plain] view plain copy java-version 如果出现如下内容,说明安装成功 2、tomcat安装 直接解压 [html] view plain copy cd/usr/java mkdirtomcat tarzxvf-C/usr/java/tomcat 配置环境 进入到上面的tomcat的bin文件夹下: 打开 [plain] view plain copy visetclasspath.sh 或 [plain] view plain copy geditsetclasspath.sh 添加如下内容: [plain] view plain copy exportJAVA_HOME=/usr/java/jdk/jdk1.8.0_65 exportJRE_HOME=/usr/java/jdk/jdk1.8.0_65/jre 保存即可。 然后退回到bin目录下: 执行: [plain] view plain copy ./startup.sh 说明tomcat启动成功 或者使用如下命令查看: 三、配置容器启动环境变量 (上面的JDK配置环境变量可以不要,但是这里的一定要写!!!!!!!!!!因为这里是设置容器启动时加载的环境变量) 1、设置环境变量首先,编辑.bashrc文件 [plain] view plain copy vi~/.bashrc 然后,在该文件末尾添加如下配置: [plain] view plain copy exportJAVA_HOME=/usr/java/jdk/jdk1.8.0_65 exportJRE_HOME=/usr/java/jdk/jdk1.8.0_65/jre exportCLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH exportPATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH 最后,需要使用source命令,让环境变量生效: [plain] view plain copy source~/.bashrc 2、编写运行脚本 我们需要编写一个运行脚本,当启动容器时,运行该脚本,启动 Tomcat,具体过程如下:首先,创建运行脚本: [html] view plain copy vi/root/run.sh 然后,编辑脚本内容如下: [html] view plain copy #!/bin/bash source~/.bashrc sh/usr/java/tomcat/apache-tomcat-7.0.68/bin/catalina.shrun 注意:这里必须先加载环境变量,然后使用 Tomcat 的运行脚本来启动 Tomcat 服务。 最后,为运行脚本添加执行权限: [html] view plain copy chmodu+x/root/run.sh 3、退出容器 当以上步骤全部完成后,可使用exit或ctrl+d命令,退出容器。 随后,可使用如下命令查看正在运行的容器: docker ps 此时,您应该看不到任何正在运行的程序,因为刚才已经使用exit命令退出的容器,此时容器处于停止状态,可使用如下命令查看所有容器: docker ps -a 输出如下内容: 记住以上CONTAINER ID(容器 ID),随后我们将通过该容器,创建一个可运行 Java Web 的镜像。 四、创建 Java Web 镜像 使用以下命令,根据某个“容器 ID”来创建一个新的“镜像”: [plain] view plain copy dockercommit89a47b5b749elin_javaweb:0.1 该容器的 ID 是“89a47b5b749e”,所创建的镜像名是“lin_javaweb:0.1”,随后可使用镜像来启动 Java Web 容器。 这是创建成功后 同样可以查看下镜像 五、启动 Java Web 容器 有必要首先使用docker images命令,查看当前所有的镜像: 可见,此时已经看到了最新创建的镜像“lin_javaweb:0.1”,其镜像 ID 是“4487bd38df06”。正如上面所描述的那样,我们可以通过“镜像名”或“镜像 ID”来启动容器,与上次启动容器不同的是,我们现在不再进入容器的命令行,而是直接启动容器内部的 Tomcat 服务。此时,需要使用以下命令: [plain] view plain copy dockerrun-d-p58080:8080--namejavaweblin_javaweb:0.1/root/run.sh 稍作解释: [html] view plain copy -d:表示以“守护模式”执行/root/run.sh脚本,此时Tomcat控制台不会出现在输出终端上。 -p:表示宿主机与容器的端口映射,此时将容器内部的8080端口映射为宿主机的58080端口,这样就向外界暴露了58080端口,可通过Docker网桥来访问容器内部的8080端口了。 --name:表示容器名称,用一个有意义的名称命名即可。 关于 Docker 网桥的内容,需要补充说明一下。实际上 Docker 在宿主机与容器之间,搭建了一座网络通信的桥梁,我们可通过宿主机 IP 地址与端口号来映射容器内部的 IP 地址与端口号, 在一系列参数后面的是“镜像名”或“镜像 ID”,怎么方便就怎么来。最后是“初始命令”,它是上面编写的运行脚本,里面封装了加载环境变量并启动 Tomcat 服务的命令。 当运行以上命令后,会立即输出一长串“容器 ID”,我们可通过docker ps命令来查看当前正在运行的容器。 在浏览器中,输入以下地址,即可访问 Tomcat 首页:http://127.0.0.1:58080/ 或者 http://localhost:58080/注意:这里使用的是宿主机的 IP 地址,与对外暴露的端口号 58080,它映射容器内部的端口号 8080。 http://blog.csdn.net/evankaka/article/details/50722788

优秀的个人博客,低调大师

SSLClient 工具

import org.apache.http.conn.ClientConnectionManager; import org.apache.http.conn.scheme.Scheme; import org.apache.http.conn.scheme.SchemeRegistry; import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.impl.client.DefaultHttpClient; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; /** * 〈一句话功能简述〉<br> * 〈避免需要证书用于进行Https请求的HttpClient 〉 * * @author zhoumoxuan * @create 9/14/18 * @since 1.0.0 */ public class SSLClient extends DefaultHttpClient { public SSLClient() throws Exception { super(); SSLContext ctx = SSLContext.getInstance("TLS"); X509TrustManager tm = new X509TrustManager() { @Override public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } @Override public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { } @Override public X509Certificate[] getAcceptedIssuers() { return null; } }; ctx.init(null, new TrustManager[]{tm}, null); SSLSocketFactory ssf = new SSLSocketFactory(ctx, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); ClientConnectionManager ccm = this.getConnectionManager(); SchemeRegistry sr = ccm.getSchemeRegistry(); sr.register(new Scheme("https", 443, ssf)); } }

优秀的个人博客,低调大师

Python工具

PyEnv python -V --> 显示版本 pyenv install --list --> 列出所有可以安装的包 pyenv versions --> 显示所有的版本 pyenv version --> 显示当前的版本 pyenv install versionId --> 安装 pyenv install versionId -v --> 采用缓存的方式安装 pyenv local 3.6.2 --> 在当期目录创建一个.python-version, 执行pyenv local 自动读取当前目录下的该文件修改PATH变量, 但是这种方式不是基于虚拟环境的, 没有实现隔离 pyenv virtualenv versionId envName --> 创建一个独立的虚拟环境(对PATH做了手脚, 还在工作目录~/.pyenv/versions/对应的versionId目录下创建了名为envName的目录, 虚拟环境独立提供了binary执行文件和site-packages目录) pyevn active envName --> 求换python版本(python的虚拟环境, 修理了PATH) pyenv deactive --> 退出当前虚拟化境 建议对于不同目的的project创建不同的python虚拟环境, 爬虫创建web(有flask等包), 数据分析创建datanalysis(有numpy等包) pyenv uninstall vir --> 删除虚拟化境 更改pip源 cd mkdir .pip cd .pip vim pip.conf [global] trusted-host = mirrors.aliyun.com index-url = http://mirrors.aliyun.com/pypi/simple pip freeze > /tmp/packages.list --> 导出所有已经安装的Python包 pip install -r /tmp/packages.list --> 安装所有在packages.list中的包 jupyter notebookp配置 jupyter notebook --generate-config jupyter notebook password jupyter notebook --ip 0.0.0.0 --no-browser

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册