1. 前提条件
  • 安装了Docker的64位Linux 操作系统
  • Linux操作系统镜像
  • Linux版本的JDK压缩包
  • Linux版本的Tomcat压缩包
2. 启动容器
容器是在镜像的基础上来运行的,一旦容器启动了,我们就可以登录到容器中,安装自己所需的软件或应用程序。
启动命令:(docker run <相关参数> <镜像 ID> <初始命令>)
docker run -i -t -v /root/software/:/mnt/software/ 25c5298b1a36 /bin/bash
其中,相关参数包括:
  • -i:表示以“交互模式”运行容器
  • -t:表示容器启动后会进入其命令行
  • -v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
假设我们的所有安装程序都放在了宿主机的/root/software/目录下,现在需要将其挂载到容器的/mnt/software/目录下。
初始命令表示一旦容器启动,需要运行的命令,此时使用“/bin/bash”,表示什么也不做,只需进入命令行即可。
3. 安装JDK和Tomcat
为了搭建 Java Web 运行环境,我们需要安装 JDK 与 Tomcat,下面的过程均在容器内部进行。我们不妨选择/opt/目录作为安装目录,首先需要通过cd /opt/命令进入该目录。
3.1.安装 JDK
首先,解压 JDK 程序包:
tar -zxf /mnt/software/jdk-8u101-linux-x64.gz -C .
然后,重命名 JDK 目录:
mv jdk1.8.101/ jdk/
3.2.安装 Tomcat
首先,解压 Tomcat 程序包:
tar -zxf /mnt/software/apache-tomcat-9.0.0.M10.tar.gz -C .
然后,重命名 Tomcat 目录:
mv apache-tomcat-9.0.0.M10/ tomcat/
4. 设置环境变量
首先,编辑/etc/profile文件
vi /etc/profile
然后,在该文件末尾添加如下配置:
export JAVA_HOME=/opt/jdk
export PATH=$PATH:$JAVA_HOME/bin
最后,需要使用source命令,让环境变量生效:
source /etc/profile
5. 编写运行脚本
我们需要编写一个运行脚本,当启动容器时,运行该脚本,启动 Tomcat,具体过程如下:
首先,创建运行脚本:
vi /root/run.sh
然后,编辑脚本内容如下:
#!/bin/bash
source /etc/profile
sh /opt/tomcat/bin/catalina.sh run
注意:这里必须先加载环境变量,然后使用 Tomcat 的运行脚本来启动 Tomcat 服务。
最后,为运行脚本添加执行权限:
chmod u+x /root/run.sh
6. 退出容器
当以上步骤全部完成后,可使用exit命令,退出容器。
随后,可使用如下命令查看容器:
docker ps -a
7. 创建 Java Web 镜像
使用以下命令,根据某个“容器 ID”来创建一个新的“镜像”:
docker commit 57c312bbaad1 web_1.0
该容器的 ID 是“57c312bbaad1”,所创建的镜像名是“web_1.0”,随后可使用镜像来启动 Java Web 容器。
8. 启动 Java Web 容器
首先使用docker images命令,查看当前所有的镜像:
正如上面所描述的那样,我们可以通过“镜像名”或“镜像 ID”来启动容器,与上次启动容器不同的是,我们现在不再进入容器的命令行,而是直接启动容器内部的 Tomcat 服务。此时,需要使用以下命令:
docker run -d -p 8080:8080 --name run_1.0 web_1.0 /root/run.sh
稍作解释:
  • -d:表示以“守护模式”执行/root/run.sh脚本,此时 Tomcat 控制台不会出现在输出终端上。
  • -p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 8080 端口,这样就向外界暴露了 8080 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。
  • --name:表示容器名称,用一个有意义的名称命名即可。
最后,在浏览器中,输入以下地址,即可访问 Tomcat 首页:
http://hostip:8080/

Docker搭建Java Web运行环境的更多相关文章

  1. 使用 Docker 搭建 Java Web 运行环境

    黄勇的博客 Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都听说过它.Docker 是一种“轻量级”容器技术,它几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公司开始逐 ...

  2. 转:使用 Docker 搭建 Java Web 运行环境

    原文来自于:http://www.codeceo.com/article/docker-java-web-runtime.html Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都 ...

  3. 使用 Docker 搭建 Java Web 运行环境(转)

    原文 http://www.importnew.com/21798.html Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都听说过它.Docker 是一种“轻量级”容器技术,它几 ...

  4. 使用Docker搭建Java Web运行环境

    这周末体验了一下挺火的Docker技术,记录学习笔记. >Docker是干什么的 Docker 是一个基于Linux容器(LXC-linux container)的高级容器引擎,基于go语言开发 ...

  5. docker 搭建 Java Web 运行环境

    安装环境:jdk,tomcat,mysql,nginx

  6. linux(ubuntu) 搭建java程序运行环境

    一:简介 ubuntu 系统的和linux差不多,我们需要在系统上搭建java程序运行环境,需要安装jdk,mysql这两个软件,tomcat是绿色版,直接通过taz -zxvf tomcat 就可以 ...

  7. Docker学习笔记之二,基于Dockerfile搭建JAVA Tomcat运行环境

    前言 在第一篇文字中,我们完全人工方式,一个命令一个命令输入,实现一个 java tomcat运行环境,虽然也初见成效,但很累人.如果依靠依靠脚本构建一个Tomcat容器实例,一个命令可以搞定,何乐而 ...

  8. 基于Dockerfile搭建JAVA Tomcat运行环境

    前言 在第一篇文字中,我们完全人工方式,一个命令一个命令输入,实现一个java tomcat运行环境,虽然也初见成效,但很累人.如果依靠依靠脚本构建一个Tomcat容器实例,一个命令可以搞定,何乐而不 ...

  9. 初学Java Web(2)——搭建Java Web开发环境

    虽然说 html 和 css 等前端技术,是对于 Web 来说不可或缺的技术,但是毕竟更为简单一些,所以就不详细介绍了,没有基础的同学可以去菜鸟教程或者W3school进行自主学习,最好的方式还是做一 ...

随机推荐

  1. Scala编程--基本类型和操作

    如果你熟悉Java,你会很开心地发现Java基本类型和操作符在Scala里有同样的意思.然而即使你是一位资深Java开发者,这里也仍然有一些有趣的差别使得本章值得一读.因为本章提到的一些Scala的方 ...

  2. Httpclient请求数据(post)

    public static String loginCheck_POST_HttpClient(String name,String pass,String url){ String result = ...

  3. win7下KiWi Syslog服务器的安装与配置

    今天就来聊聊日志服务器KiWi Syslog的安装与配置. 首先,所需文件有以下2个: 1.Kiwi_Syslog_Server_9.5.0.Eval.setup.exe[此版本只有14天寿命][Ki ...

  4. [网络技术][转]路由表查找过程(ip_route_input_slow)

     若干解释: 判断in_dev是否存在,是通过mac地址吗? 源IP地址如果是multicast,broadcast,loopback地址,意味着数据报不知道从哪来的,只能把数据报废掉了. 目标IP地 ...

  5. Socket支持多用户并发访问的解决办法

    //创建线程池,池中具有(cpu个数*50)条线程 ExecutorService executorService = Executors.newFixedThreadPool(Runtime.get ...

  6. github代码收集推荐

    https://github.com/AFNetworking/AFNetworkinghttps://github.com/jessesquires/JSQMessagesViewControlle ...

  7. Unity中游戏的声音管理

    using UnityEngine;using System.Collections;using System.Collections.Generic;/// <summary>/// 用 ...

  8. C语言文法分析

    程序 → <外部声明>|<程序><外部声明> <外部声明> → <函数定义> | <声明> <函数定义> → < ...

  9. Android深度探索--HAL与驱动开发----第八章读书笔记

    通过蜂鸣器的实现原理,实现一个完整的蜂呜器驱动,可以打开和关闭蜂鸣器. PWM驱动的实现方式不同于LED驱动, PWM 驱动将由多个文件组成.这也是大多数 Linux 驱动的标准实现方式. 刚开始是L ...

  10. LeetCode 21 -- Merge Two Sorted Lists

    Merge two sorted linked lists and return it as a new list. The new list should be made by splicing t ...