一.环境简介

宿主机版本:ubuntu-14.04.3-server-amd64.iso

JDK版本:jdk-7u76-linux-x64.tar.gz

TOMCAT版本:apache-tomcat-7.0.52.zip

二.Ubuntu 14.04版本系统中已经自带了Docker,查看下docker版本

docker version

三、(可选)ssh登录服务器端准备

使用ssh客户端工具登录 ,具体参考http://jingyan.baidu.com/article/9c69d48fb9fd7b13c8024e6b.html 
安装openssh
sudo apt-get update
sudo apt-get install openssh-server
 
四、下载容器镜像
 

获取镜像到本地

sudo docker pull bobsha/ping

这里bobsha是我docker hub的用户名bobsha/ping是我之前上传到一个安装了ping命令的Ubuntu镜像。

当然也可以自己申请一个帐号进行管理,网址为https://hub.docker.com

查看本地镜像信息

sudo docker images

五、宿主机及目标容器挂载目录准备

本步骤是将docker容器需要用到的安装软件和tomcat运行的项目在宿主机上准备好,容器中进行挂载。

首先将软件准备好放在宿主机/opt/software下面,在容器中/mnt下面增加software目录。

在宿主机/opt中建立/opt/webapps/ROOT,并添加index.html文件,加入如下内容:
<html>
<body>Hello world!</body>
</html>

六、容器tomcat运行环境准备

docker run -i -t -v /opt/software/:/mnt/software/ 8ab8 /bin/bash
 
命令包含以下三个部分:
docker run <相关参数> <镜像 ID> <初始命令>
其中,相关参数包括:
  • -i:表示以“交互模式”运行容器

  • -t:表示容器启动后会进入其命令行

  • -v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>

经过上面的步骤现在已经进入容器的交互式窗口中,将tomcat和jdk解压到/opt目录中,并编写tomcat启动脚本。

在/opt下面建立runtomcat.sh文件,加入如下内容:

#!/bin/bash
export JAVA_HOME=/opt/jdk1..0_76/
export PATH=$JAVA_HOME/bin:$PATH
/bin/catalina.sh run

给脚本赋予权限

chmod u+x /opt/runtomcat.sh

退出容器

exit

查看最近运行容器信息

docker ps -l

root@ubuntu:/opt/software# docker ps -l

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
23d53a7745bc bobsha/ping:latest "/bin/bash" About a minute ago Exited (0) 12 seconds ago backstabbing_lumiere

保存容器为新镜像,我将新镜像命名为bobsha/tomcat

docker commit 23d5 bobsha/tomcat

这里容器ID只需要写前几位可以区分就行一般,三到四位即可。

七、运行tomcat

运行tomcat,这次只运行启动tomcat命令
docker run  -p 18080:8080 -v /opt/webapps/:/opt/apache-tomcat-7.0.52/webapps/ -name docker_tomcat bobsha/tomcat /opt/runtomcat.sh
其中,新出现的相关参数包括:
  • -p:<宿主机端口>:<容器端口>,将容器端口映射为指定宿主机端口,通过宿主机端口进行访问容器程序

  • -name:容器名称,起个有意义的名字即可

验证tomcat运行情况

通过局域网中浏览器访问: http://192.168.0.106:18080/index.html显示成功!
八、移除容器
Ctrl+C退出后,发现再次运行上面的命令显示如下:
Warning: '-name' is deprecated, it will be replaced by '--name' soon. See usage.
FATA[0000] Error response from daemon: Conflict. The name "docker_tomcat" is already in use by container bab14ef39b40. You have to delete (or rename) that container to be able to reuse that name.
 
查看所有容器
docker ps -a

CONTAINER ID        IMAGE                  COMMAND                CREATED             STATUS                       PORTS                     NAMES

bab14ef39b40        bobsha/tomcat:latest   "/opt/runtomcat.sh"    10 minutes ago      Exited (130) 8 minutes ago                             docker_tomcat 
 
移除该容器
docker rm bab1
 
本文参考以下文章及教程:
http://www.docker.org.cn/book/docker.html
http://m.oschina.net/blog/616526?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io

docker部署tomcat的更多相关文章

  1. 【转】Docker部署Tomcat及Web应用

    Docker部署Tomcat及Web应用 - Scofield_No1的博客 - CSDN博客https://blog.csdn.net/qq_32351227/article/details/786 ...

  2. Docker容器和本机之间的文件传输 使用Docker部署Tomcat项目

    Docker容器和本机之间的文件传输. http://blog.csdn.net/leafage_m/article/details/72082011 使用Docker部署Tomcat项目 http: ...

  3. Docker部署Tomcat实例

    1.使用Docker部署Tomcat服务 http://www.open-open.com/lib/view/open1455717671698.html 2.搭建docker私有仓库 http:// ...

  4. 在华为云ECS上手工通过Docker部署tomcat

    本文介绍了如何在华为云上ECS上手工通过Docker部署tomcat,并提供了Docker常用操作 一.环境准备 ECS:操作系统版本:    CentOS Linux release 7.6.181 ...

  5. Docker部署tomcat及应用

    前提Docker已安装完成. 由于测试网无法直接连入互联网,所以在本机虚拟机内下载tomcat镜像并传到测试网主机中. 虚拟机内执行 查找tomcat镜像: # docker search tomca ...

  6. docker 部署tomcat

    使用Docker搭建Tomcat运行环境 1 准备宿主系统 准备一个 CentOS 7操作系统,具体要求如下: 必须是 64 位操作系统 建议内核在 3.8 以上 通过以下命令查看您的 CentOS ...

  7. Docker部署Tomcat,Nginx,Redis应用

    一.tomcat部署 1.拉取tomcat镜像 docker pull tomcat:7-jre7 2创建tomcat容器 创建容器用于部署单点登录系统(CAS)  -p表示地址映射 docker r ...

  8. 2. Docker部署tomcat, nginx, redis,及docker私有仓库

    1. 部署tomcat 1.1 下载tomcat       docker pull tomcat:7-jre8 1.2 部署容器  docker run -di --name=tomcat -p 8 ...

  9. Docker部署tomcat+nginx+mysql,创建一个tomcat集群

    Docker的部署可以选择虚拟机或者云服务器,我自己选择的是本机安装centos7虚拟机: 1.虚拟机安装登录成功后开始部署docker: 首先了解docker是一个开源应用容器引擎,基于Go语言遵循 ...

  10. docker 部署 tomcat

    1.搜索tomcat信息 docker search tomcat 2.下拉tomcat 镜像 docker pull tomcat 3.运行tomcat docker run -d --name=t ...

随机推荐

  1. Thinking in Java——笔记(8)

    Polymorphism The polymorphic method call allows one type to express its distinction from another, si ...

  2. [转]JNIEnv解析

    1.关于JNIEnv和JavaVM JNIEnv是一个与线程相关的变量,不同线程的JNIEnv彼此独立.JavaVM是虚拟机在JNI层的代表,在一个虚拟机进程中只有一个JavaVM,因此该进程的所有线 ...

  3. SUSE命令

    本人很喜欢Suse,在工作中也很喜欢总结关于Suse的经验教训,下面就这个问题来详细说说Suse常用命令.Suse常用命令的问题希望对你有所帮助.看完本文你肯定有不少收获,希望本文能教会你更多关于Su ...

  4. android发送/接收json数据

    客户端向服务器端发送数据,这里用到了两种,一种是在url中带参数,一种是json数据发送方式: url带参数的写法: url+/?r=m/calendar/contact_list&uid=3 ...

  5. Python之什么是函数

    我们知道圆的面积计算公式为: S = πr² 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需要计算3个不同大小的圆的面积: r1 = 12.34 r2 = 9.08 r3 = 73.1 ...

  6. youtube视频下载

    开你的电脑,然后打开你的浏览器,浏览器可以是IE.Chrome.Firefox等等   在浏览器中输入这个网址:en.savefrom.net,点击Enter键,进入这个网页:   打开你需要下载的y ...

  7. IIS不能对网站添加默认文档(由于权限不足而无法写入配置文件)

    IIS7以上版本配置网站时需要手动配置网站目录的文件夹权限 增加"IIS_IUSER"用户的修改权限 但增加后仍然提示“ 由于权限不足无法写入配置文件” 通常是Web.config ...

  8. Advanced REST client

    好用的测试工具,老是忘记名字chrome插件 Advanced REST client

  9. Eclipse新增Web项目

    [前置条件] 1. 电脑已安装JDK1.6,并成功配置环境变量 2. 电脑已存在tomcat6.0包,无需安装 [操作步骤] 1. 为eclipse配置tomcat6.0 (1)eclipse菜单栏, ...

  10. cocos2dx 3.x(动态改变精灵的背景图片)

    //更换精灵CCSprite的图片有两种方式. //直接通过图片更换 //使用setTexture(CCTexture2D*)函数,可以重新设置精灵类的纹理图片. // auto bg = Sprit ...